Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
Develop Samsung Wallet
doconboarding guide 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 your own service for samsung wallet the account is used to sign-up/sign-in on partner portal the following sections contain a description of the samsung wallet onboarding process for new partners overall onboarding process register a new samsung account to register a new samsung account at the wallet partners portal go to the wallet partners portal and click on "sign in" enter the email address and password in the sign-in form if you don’t have a samsung account yet, click on "create account" at the bottom to create one 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 the new partner of wallet partners portal is your samsung account will be conducted by samsung developer the new partners register to “a business account” and agree to the terms and conditions the partners complete your company profile information to use wallet partners portal register to “a business account” click on “get started” to use wallet partners portal, you need to accept the terms of samsung developer portal a business account to create is required the company information “enter your business information” additional information for the business account is optional click on “submit” partners whose business accounts created goes wallet partner onboarding process as follows you’ll receive a welcome email right after wallet partner onboarding process set encryption information and request permission you can easily use the samsung wallet service using our step-by-step guide to utilize the full functionality of the samsung wallet partners service, you set encryption information, and configure card information after verification, you get authority to use all services warning only one account allowed per company manage your cards with one account for partners, you can only manage cards registered with your account multiple users with one account at same time is not allowed if someone else is signed in with the same account, the account you're already using will be signed out encryption setting you need to perform encryption authentication to use the wallet partners portal 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 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 encryption information csr to utilize 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 click the done button to submit form and complete the sign-up 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 service flow csr certificate signing request process overview openssl is an open-source command-line tool that allows users to perform various ssl-related tasks this section explains how to create key factors for security with openssl creating a private key private key helps to enable encryption and is the most important component of certificates openssl genpkey -out domain key -algorithm rsa -pkeyopt rsa_keygen_bits 2048 • if you want to make the private key more secure, adding “-des3“ on the command encrypts it with a password creating a certificate singing request csr if you want our certificate signed, you need a certificate signing request csr the csr includes the public key and some additional information such as organization and location let's create a csr domain csr from the existing private key openssl req -out domain csr -key domain key -new -sha256 you'll enter our private key password if needed and some csr information to complete the process the output will look like 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 few 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 [] • “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 you can also create both the private key and csr with a single command openssl req -newkey rsa 2048 -nodes -keyout domain key -out domain csr • if you want your private key encrypted, you can remove the “-nodes“ option for more information • https //en wikipedia org/wiki/public_key_certificate • https //www openssl org my account you can manage "wallet partner management" in the my account section you can modify company information you can manage encryption settings in the my account section after a signed certificate is generated, the encryption setting management fields can no longer be edited
Develop Samsung Wallet
docadvances features check available devices api check samsung wallet service availability for the devices and countries [request] type value description method get url https //api-us3 mpay samsung com/wallet/cmn/v2 0/device/available header partnercode string required partner code * partner code or id from samsung pay partner system query parameters modelname string required device model nameex sm-g925k, sm-r730t servicetype string required service type- wallet samsung wallet [response] type value description body resultcode string required result code resultmessage string required result message available boolean required service availability supportkr boolean required kr service support for the device [example success ] http/1 1 200 ok content-type application/json;charset=utf-8 content-length xx { "resultcode" "0", "resultmessage" "success", "available" "true", "supportkr" "true" } [example error ] http/1 1 400 bad request content-type application/json;charset=utf-8 content-length xx { "resultcode" " cmn5n9001", "resultmessage" " internal server error" } [response] http code status code description 200 0 success 400 cmn1n1001 missing requisite parameter from api request – {0} 400 cmn1n1002 invalid parameter from api request – {0} 400 cmn1n1003 invalid parameter length from api request – {0} 400 cmn2n2007 invalid country code 500 cmn4n8003 db connection failed provisioning defines provisioning/access data for service providers to configure additional features with user's card [note] before using this item, see the provisioning type under 'advanced settings' in the wallet card settings created in the partner portal it is mandatory to configure cards according to their purpose and method the data format corresponding to 'provision data' should include items agreed upon in advance please contact technical support to inquire about the method of providing access functions card data format key description provision data string required actual data to be used during the feature provisioning promised data fields or format to be passed to the module * json format must be converted to escape string provision dynamicyn string optional this value is set when dynamically refreshing provision data with the "interval" item, you can set the validity period of the data * this value can be specified when configuring the wallet card in the partner portal, but the value transmitted as card data takes precedence provision intervalstring conditional the valid time of provision data once this time has elapsed, provision data is updated unit seconds * this value can be specified when configuring the wallet card in the partner portal, but the value transmitted as card data takes precedence data example [note] the json string needs to be delivered as a escaped string case provision data access credential with apdu command { "access_credential_header" "a1b2c3d4e5f6", "access_key_id" "0xb3f9a2d7", "nonce" "f1e2d3c4b5a69788", "mac_key" "5d6a2b7c9e8f3d1c5f2a6d7c8b3e1f90", "apdu_command" "00a4040007a0000000031010", "signature" "6f3d9a2b7e8c1d0f5a6b3c9d4f2e7a8" } issuing credential via sdk { "apppackagename" "com partner wallet", "appkey" "abcdefaei;fadaf=", "refid" "virehgqerurt932m125215", "provider" "sec", "deviceid" "0000000000000000", "authcode" "43jkl6h3l4" } access credential that meet a specific protocol { "credential" { "service_id" "0xa3f1", "issuer" "samsung", "key_version" "0x02", "protocol" "samsung_wallet_nfc", "data" "3fa25b7c9d8e2f4a1d5c6e8f0b3d9a4c", "mac_key" "5d6a2b7c9e8f3d1c5f2a6d7c8b3e1f90" }, "keys" { "credential_pk" "mfyweayhkozizj0caqyfk4eeaaodqgaeo/7xfs1fkvrzqj9xit3y0zcfvne4f5vlzopv2uv7a/nzwqhvm9f+jddnn4ujjx1knlqwgz+dtvlfp77k8b5gxw==" }} a single data for authentication 1234567890abcdef barcode & qr codes defines serial/barcode/qr code data for service providers to configure additional features with user's card [note] to enable dynamic qr functionality, please refer to the wallet card settings in the partner portal card data format presentation type and formats the barcode display type defines how a serial number, barcode, and/or qr code is shown [presentation types serialtype ] code name description serialnumber serial number barcode barcode qrcode qr code [presentation formats ptformat ] code name description barcode barcode only barcodeserial barcode with serial number serial serial number only dualserial dual serial number dualbarcode dual barcode dualbarcodeserial dual barcode for each serial numbers barcodepin barcode with pin qrcode qr code only qrcodeserial qr code with serial number [barcode formats ptsubformat ] below are commonly used barcode formats, supported by the zxing barcode scanning library see also https //zxing github io/zxing/apidocs/com/google/zxing/barcodeformat html code name description aztec aztec 2d barcode format codabar codabar 1d format code_39 code 39 1d format code_93 code 93 1d format code_128 code 128 1d format data_matrix data matrix 2d barcode format ean_8 ean-8 1d format ean_13 ean-13 1d format itf itf interleaved two of five 1d format maxicode maxicode 2d barcode format pdf_417 pdf417 format qr_code qr code 2d barcode format rss_14 rss 14 rss_expanded rss expanded upc_a upc-a 1d format upc_e upc-e 1d format upc_ean_extension upc/ean extension format not a stand-alone format data example [note] the json string needs to be delivered as a escaped string case data set 1d barcode with serial as upc-a type { "barcode value" "www samsung com", "barcode serialtype" "barcode", "barcode ptformat" "barcodeserial", "barcode ptsubformat" "upc_a" } 2d barcode as qr code type { "barcode value" "www samsung com", "barcode serialtype" " qrcode", "barcode ptformat" "qrcode", "barcode ptsubformat" "qr_code" } 2d barcode as aztec type which has 300 seconds valid time dynamic qr { "barcode value" "www samsung com", "barcode serialtype" " qrcode", "barcode ptformat" "qrcode", "barcode ptsubformat" "aztec", "barcode interval" "300" } serial number { "barcode value" "1234567890", "barcode serialtype" "serialnumber", "barcode ptformat" "serial" }
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 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 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 in-app 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 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" "₩" } 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" } create a service token this soap api will be deprecated at the end of 2024createservicetoken, along with getsubscriptionstatus, will be deprecated at the end of 2024 use the iap subscription api, check status of subscription, instead create a service token soap deprecated, end of 2024 createservicetoken generates and returns access token value that your server must use to authenticate getsubscriptionstatus soap requests each token is valid for 30 days noteif a token expires during the processing of a soap api request, your server must get a new token and resubmit the soap api reqeust request post https //iap samsungapps com/iap/ws/rtcservice?wsdl <soapenv envelope xmlns soapenv="http //schemas xmlsoap org/soap/envelope/" xmlns ws="http //ws iap samsung com/"> <soapenv header/> <soapenv body> <ws createservicetoken> <secret>{secret}</secret> </ws createservicetoken> </soapenv body> </soapenv envelope> parameters parameter type description secret string required unique id up to 12 numerical digits assigned by samsung to each selleryour secret is your seller deeplink in seller portal go to your profile page and scroll to the information for seller page table example post /iap/ws/rtcservice?ws http/1 1 host iap samsung com <soapenv envelope xmlns soapenv="http //schemas xmlsoap org/soap/envelope/" xmlns ws="http //ws iap samsung com/"> <soapenv header/> <soapenv body> <ws createservicetoken> <secret>123456789012</secret> </ws createservicetoken> </soapenv body> </soapenv envelope> response noteresponse parameters may be added, changed, and deleted <soap envelope xmlns soap="http //schemas xmlsoap org/soap/envelope/"> <soap body> <ns2 createservicetokenresponse xmlns ns2="http //ws iap samsung com/"> <output>{output}</output> </ns2 createservicetokenresponse> </soap body> </soap envelope> parameters parameter type description output string value of your service token id 96 alphanumeric characters example <soap envelope xmlns soap="http //schemas xmlsoap org/soap/envelope/"> <soap body> <ns2 createservicetokenresponse xmlns ns2="http //ws iap samsung com/"> <output>de4d8cd4843eb59388a8834ac833c4bfbaf </output> </ns2 createservicetokenresponse> </soap body> </soap envelope> check subscription status this soap api will be deprecated at the end of 2024use the iap subscription api, check status of subscription, instead gets the subscription status, including item information and purchase information, which can be used to verify the purchase of an item this call requires the purchase id of the subscription item and a service token for authentication and checks the user’s subscription information on the server information is returned in a rest response this api only provides meaningful information after a subscription is purchased subscription-related content includes the purchase date, current subscription status, current price, current subscription pricing option, number of renewals, paid subscription start date, subscription end date, and reason for cancellation before you can start using the iap subscription api, you must meet all requirements and use the required authorization header parameters in your requests see get started with the iap apis for more information see check status of subscription for more information about this iap subscription api check subscription status soap deprecated, end of 2024 warningthis version of the api, which returns information in a soap response, will be deprecated by the end of 2024 use the latest api, shown above, which returns information in a rest response check subscription status getsubscriptionstatus gets subscription status, item information, and purchase information of a specified auto recurring subscription ars item that was purchased previously request post https //iap samsungapps com/iap/ws/rtcservice?wsdl <soapenv envelope xmlns soapenv="http //schemas xmlsoap org/soap/envelope/" xmlns ws="http //ws iap samsung com/"> <soapenv header/> <soapenv body> <ws getsubscriptionstatus> <purchaseid>{purchase_id}</purchaseid> <servicetoken>{service_token}</servicetoken> </ws getsubscriptionstatus> </soapenv body> </soapenv envelope> parameters parameter type description purchaseid string required unique identifier assigned by samsung iap to the in-app item purchase of the subscription item servicetoken string required value of your service token id 96 alphanumeric characters obtained by calling createservicetoken example post /iap/ws/rtcservice?ws http/1 1 host iap samsung com <soapenv envelope xmlns soapenv="http //schemas xmlsoap org/soap/envelope/" xmlns ws="http //ws iap samsung com/"> <soapenv header/> <soapenv body> <ws getsubscriptionstatus> <purchaseid>asd040f7c36e98d5ca3edf377a40fb </purchaseid> <servicetoken>22afdc3cd60279fad4cf59b17ed85833b9 </servicetoken> </ws getsubscriptionstatus> </soapenv body> </soapenv envelope> response noteresponse parameters may be added, changed, and deleted <soap envelope xmlns soap="http //schemas xmlsoap org/soap/envelope/"> <soap body> <ns2 getsubscriptionstatusresponse xmlns ns2="http //ws iap samsung com/"> <output> <subscriptionpurchasedate>{subscription_purchase_date}</subscriptionpurchasedate> <subscriptionenddate>{subscription_end_date}</subscriptionenddate> <subscriptiontype>{subscription_type}</subscriptiontype> <subscriptionstatus>{subscription_status}</subscriptionstatus> <subscriptionfirstpurchaseid>{subscription_first_purchase_id|</subscriptionfirstpurchaseid> <countrycode>{country_code}</countrycode> <localcurrencycode>{local_currency_code}</localcurrencycode> <localprice>{local_price}</localprice> <supplyprice>{supply_price}</supplyprice> <itemid>{item_id}</itemid> <freetrial>{free_trial}</freetrial> <realmode>{real_mode}</realmode> <latestorderid>{latest_order_id}</latestorderid> <totalnumberoftieredpayment>{total_number_of_payment}</totalnumberoftieredpayment> <currentpaymentplan>{current_payment_plan}</currentpaymentplan> <totalnumberofrenewalpayment>{total_number_of_renewal_payment}</totalnumberofrenewalpayment> <subscriptionfirstpaymentdate>{subscription_first_payment_date}</subscriptionfirstpurchasedate> <cancelsubscriptiondate>{cancel_subscription_date}</cancelsubscriptiondate> <cancelsubscriptionreason>{cancel_subscription_reason}</cancelsubscriptionreason> </output> </ns2 getsubscriptionstatusresponse> </soap body> </soap envelope> parameters parameter type description output nestedobject container for the elements subscriptionpurchasedate string date and time of the item's initial purchase and payment transaction yyyy-mm-dd hh mm ss gmt subscriptionenddate string date and time of the subscription expiration yyyy-mm-dd hh mm ss gmt subscriptiontype string type of subscription itembelow value is always returned item_type_auto_recurring_subscription subscriptionstatus string current status of the item subscription"active" the subscription is current and in effect "cancel" the user canceled the subscription check the subscriptionenddate to see if the subscription period has ended as the canceled item is still valid until the current suscription period has ended subscriptionfirstpurchaseid string unique identifier of the initial purchase of the item countrycode string country code 3 alphabetic characters of the purchaser's location for example, kor, usa localcurrencycode string currency code 3 alphabetic characters of the purchaser's local currency paid for the item for example, eur, gbp, usd localprice double cost in the user's local currency that the user paid the in-app item price supplyprice double total amount of the item price plus the applied tax itemid string unique identifier of the in-app item registered in seller portal freetrial string whether or not the in-app item's subscription is currently in a free trial period "y" free trial period"n" regular price period realmode string for regular purchases, whether the actual payment was made when the user purchased the item "y" samsung iap was set to production mode the actual payment was made "n" samsung iap was set to test mode the actual payment was not made latestorderid string identifier 19 alphanumeric characters of the most recent payment it can be an initial payment or a renewal payment order ids are displayed in the user's renewal receipt totalnumberoftieredpayment string total number of tiered price payments currentpaymentplan string current period the subscription is in - "f" free trial period- "r" regular price period- "t" tiered lower price period totalnumberofrenewalpayment string total number of payments made for initial and renewal subscriptions subscriptionfirstpaymentdate string date and time the initial subscription started yyyy-mm-dd hh mm ss gmt cancelsubscriptiondate string date and time the subscription was stopped yyyy-mm-dd hh mm ss gmt cancelsubscriptionreason string cause of the subscription stoppage "1" user canceled the subscripton "2" system canceled the subscription for example, renewal test was finished "3" billing error for example, user payment information was no longer valid "4" item is not available for purchase at the time of renewal "5" unknown errors example <soap envelope xmlns soap="http //schemas xmlsoap org/soap/envelope/"> <soap body> <ns2 getsubscriptionstatusresponse xmlns ns2="http //ws iap samsung com/"> <output> <subscriptionpurchasedate>2019-07-14 04 28 52</subscriptionpurchasedate> <subscriptionenddate>2020-09-21 04 28 52</subscriptionenddate> <subscriptiontype>item_type_auto_recurring_subscription</subscriptiontype> <subscriptionstatus>active</subscriptionstatus> <subscriptionfirstpurchaseid>0cc3325d051cd83981abe6c33eb3a5b41404</subscriptionfirstpurchaseid> <countrycode>usa</countrycode> <localcurrencycode>usd</localcurrencycode> <localprice>1 000</localprice> <supplyprice>1 010</supplyprice> <itemid>subscriptionitem104</itemid> <freetrial>y</freetrial> <realmode>y</realmode> <latestorderid>p20190814us15845453</latestorderid> <totalnumberoftieredpayment>0</totalnumberoftieredpayment> <currentpaymentplan>r</currentpaymentplan> <totalnumberofrenewalpayment>1</totalnumberofrenewalpayment> <subscriptionfirstpaymentdate>2019-07-21 04 28 52</subscriptionfirstpaymentdate> </output> </ns2 getsubscriptionstatusresponse> </soap body> </soap envelope> error response error code error message description 10 missing_parameter a required parameter is missing 15 invalid_parameter_value a parameter value is invalid 300 invalid_secret the service token is invalid 301 expired_service_token the service token has expired -1 unknown_error a server error has occurred example <soap envelope xmlns soap="http //schemas xmlsoap org/soap/envelope/"> <soap body> <soap fault> <faultcode>soap server</faultcode> <faultstring>fault occurred while processing </faultstring> <detail> <ns1 webserviceexception xmlns ns1="http //ws iap samsung com/"> <errorcode xsi type="xs int" xmlns ns2="http //ws iap samsung com/" xmlns xs="http //www w3 org/2001/xmlschema" xmlns xsi="http //www w3 org/2001/xmlschema-instance"> 301 </errorcode> <errormessage xmlns ns2="http //ws iap samsung com/"> expired_service_token </errormessage> </ns1 webserviceexception> </detail> </soap fault> </soap body> </soap envelope>
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
Develop Samsung IAP
docoverview what is samsung in-app purchase? samsung in-app purchase iap is a payment service that makes it possible to sell a variety of items in applications for samsung galaxy store and internally manages communication with supporting iap services in the samsung ecosystem, such as samsung account, samsung checkout, and samsung rewards in-app purchase can be used either to make a one-off payment or to pay for a regular subscription items that can be sold through in-app purchase include premium content, virtual goods such as in-game items, and specific services with different length license terms iap offers an sdk and server apis iap sdk class and apis enable you to easily integrate iap functionality into your app, such as configuring iap, getting item details, offering and selling items, and managing purchased items iap server apis enable you to communicate with iap server to verify item purchases, create a service token, and check subscription status payment methods, including credit card, phone bill, and paypal, are available for samsung in-app purchase in more than 120 countries to apply samsung in-app purchase to your applications successfully, make sure you read the following documents thoroughly samsung in-app purchase programming guide four basic steps to selling in-app items step 1 develop your application using sdkdownload the samsung in-app purchase sdk and integrate it into your application - sdk download step 2 request commercial seller statusrequest commercial status through the samsung galaxy store seller portal before you can charge for your application or in-app item, you need to request commercial seller status and register your payment information step 3 register your applicationupload your binary file to samsung galaxy store seller portal you can add in-app items only after you register a binary to which samsung in-app purchase is applied step 4 add in-app items to your applicationadd in-app items and register item-related information item id, item title, item type, price, and so on restrictionsfrom iap sdk v6 1 1, it is supported only on android api level 23 or higher it does not work properly in lower versions samsung iap unity plugin access samsung iap from the unity development platform the samsung iap unity plugin sometimes called the samsung unity iap plugin contains all samsung iap related scripts and libraries see unity iap plugin for more information
Develop Samsung IAP
docsamsung iap orders api the samsung in-app purchase iap orders api is used to view all payments and refunds on a specific date before you can start using the iap orders api, you must meet all requirements and use the required authorization header parameters in your requests see get started with the iap apis for more information view payments and refunds view all payments and refunds on a specific date request post /iap/seller/orders name type description sellerseq string required your seller deeplink in seller portal, a 12-digit number to find your seller deeplink, log in to seller portal and go to profile > information for seller page packagename string optional the package name of the app for which you want to view payment and refund data if no packagename is specified, data is returned for all apps to find an app's package name, log in to seller portal, go to apps, select the app, open the binary tab, and click the file name requestdate string optional the specific day for which you want to view payments and refunds if no date is specified, yesterday's date is used format yyyymmdd continuationtoken string optional request the next page of payment/refund data a page contains up to 100 items if a continuationtoken is not specified, the first page of data is displayed if more than one page of data is available, the response includes a continuationtoken use this token to request the next page of data if the continuationtoken returned in the response is null, this means the previous page of data is the last page to contain item information curl \ -x post \ -h "content-type application/json" \ -h "authorization bearer <your-access-token>" \ -h "service-account-id <your-service-account-id>" \ -d '{"sellerseq" "000123456789","packagename" "com samsung android sample","requestdate" "20230615","continuationtoken" "e5ec039730164c50277f9a231b74c1b6e035d9184160d8b3d6b3de1f62691328fbe4c0c4863da52b3bcecef44a4c7acb974c674728c3cb173cb339bd41783f2c"}' \ "https //devapi samsungapps com/iap/seller/orders" use cases parameters included data retrieved sellerseq yesterday's payments and refunds for all apps sellerseq, packagename yesterday's payments and refunds for the specified app sellerseq, requestdate payments and refunds for all apps for the specified date sellerseq, packagename, requestdate payments and refunds for the specified app and the specified date response parameters name type description continuationtoken string if more than 1 page of data 100 items is available to view, a continuationtoken is sent in order to request and view the next page of data if the continuationtoken is null, this means the previous page of data is the last page to contain item information orderid string unique identifier assigned to the purchase receipt purchaseid string unique identifier of the in-app item purchase transaction contentid string content id of the application registered in seller portal countryid string three-character country code iso 3166 of the country where the item is sold packagename string package name of the application registered in seller portal itemid string unique identifier of the in-app item registered in seller portal itemtitle string title of the in-app item registered in seller portal status string order status 2 payment successfully completed3 payment canceled refund if you want to test the "payment canceled" status, contact customer support at seller portal > help > contact us > contact us at the customer center include the orderid of the purchase so that we can change the order status to "payment canceled " ordertime datetime timestamp utc when the order was requested completiontime datetime timestamp utc when the payment was successfully completed refundtime datetime timestamp utc when the payment was canceled by the admin localcurrency string currency symbol of the country's currency where the item was purchased for example, $ localcurrencycode string three-character currency code iso 4217 of the country's currency where the item was purchased for example, eur, gbp, usd localprice string price of the item in the country where the item was purchased usdprice string price in u s dollars usd exchangerate string usd exchange rate at the time of purchase mcc string sim card country code subscriptionorderid string if the purchased item is a subscription, the origin order id of the subscription freetrialyn string if the item is purchased during a free trial period y the item was purchased during a free trial period n the item was not purchased during a free trial period tieredsubscriptionyn string if the item is purchased as a lower-tier/introductory or regular-tier/regular subscription y the item was purchased as a lower-tier or introductory subscription n the item was purchased as a regular-tier or regular subscription { "continuationtoken" "5b5496f44417c9f6b42c8768cbd3f5b5621cdd4021308af81c1e49b77602e9074ab", "orderitemlist" [ { "orderid" "s20230210kr01922227", "purchaseid" "a778b928b32ed0871958e8bcfb757e54f0bc894fa8df7dd8dbb553c81b048343", "contentid" "000005059222", "countryid" "usa", "packagename" "com samsung android sample" }, { "orderid" "s20230210kr01922227", "purchaseid" "90a5df78f7815623eb34f567eb0413fb0209bb04dad1367d7877edfa136321", "contentid" "000005059222", "countryid" "usa", "packagename" "com samsung android sample" }, ] } see failure response codes for a list of possible response codes when a request fails failure response codes the following are response codes you may see when the request fails status code and message 400bad request slr_4001 seller is not matchedslr_4009 continuation token is invalidslr_4010 decrypted continuation token consists of invalid data typeslr_4011 date format is invalid use the format yyyymmdd 401unauthorized slr_4008 failed to verify gateway server authorization
We use cookies to improve your experience on our website and to show you relevant advertising. Manage you settings for our cookies below.
These cookies are essential as they enable you to move around the website. This category cannot be disabled.
These cookies collect information about how you use our website. for example which pages you visit most often. All information these cookies collect is used to improve how the website works.
These cookies allow our website to remember choices you make (such as your user name, language or the region your are in) and tailor the website to provide enhanced features and content for you.
These cookies gather information about your browser habits. They remember that you've visited our website and share this information with other organizations such as advertisers.
You have successfully updated your cookie preferences.