Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
tutorials
blogqr codes to provide services through fixed links, check out the details of the data fetch link. these static links can also be used by scanning qr codes. experience the service and practice you can experience service integration development using the codelab and use the testing tool to preregister the wallet cards created on the partner portal, which could be helpful. conclusion we've looked at how to provide digital content through the "add to samsung wallet" feature. we continuously update the guides on the developer portal, so please refer to them when preparing for integration. summary the "add to samsung wallet" service welcomes participation from content service partners and developers. for inquiries or technical support, please contact us through the form provided on the developer portal. i hope this post has been helpful, and now i'll conclude my writing here. thank you. this post was written based on the sdc23 korea session.
Choi, Jonghwa
Develop Samsung Wallet
docqr code on pc browser or kiosk app/mobile web add the "add to samsung wallet" button according to the instructions at [implement the button] /implement-the-button html place the button on the page where the user sees the qr code or barcode for the first time, such as a booking completion or purchase completion page place the button just below or close to the qr code or barcode that can be saved in samsung wallet mms to implement “add to samsung wallet” in an mms message, place the coupon or other content that can be saved to samsung wallet in the message and include the “add to samsung wallet” link at the bottom of the message in an mms message on a samsung mobile device where samsung wallet one ui version 5 0 is installed, the “add to samsung wallet” button is automatically displayed when the "add to samsung wallet" link is included in the message e-mail to add boarding passes, event tickets, coupons, memberships, and gift cards to samsung wallet, users can click “add to samsung wallet” in emails opened on samsung galaxy or galaxy tab devices with samsung wallet installed show the “add to samsung wallet” button with the mobile invitation, booking details, purchase details, or sign-up details included in the email place the button just below or close to the qr code or barcode that can be saved in samsung wallet pc/kiosk place the “add to samsung wallet” qr code on the right side of completion pages for purchases, bookings, and membership card sign-ups, and for coupons, gift cards, and tickets notice for details on how to apply a custom button in the integration, please refer to implementing atw button about atw button images, please refer to image resources for more details
featured
blogqr codes in a single ticket • batch update the status for all tickets, for example, when an event is canceled or postponed; this feature requires the partner to share the relevant information. • provide up to 2 barcodes or qr codes for extra services at your event, such as coupons for snacks or parking, in addition to the barcode or qr code for the ticket itself • push notifications sent 1 hour before the event begins integrate "add to samsung wallet" for your event tickets for a detailed description of the registration process, development specifications, and testing tools for integrating “add to samsung wallet” to your service, go to the samsung wallet partner portal (english language links below). the partner portal contains tutorials that walk you through the integration process step-by-step. step 1. register as a partner at the samsung wallet partner portal https://developer.samsung.com/wallet/onboarding.html step 2. create and manage samsung wallet cards https://developer.samsung.com/wallet/manage.html step 3. integrate “add to samsung wallet” to your service https://developer.samsung.com/wallet/api/overview.html if you are in a country where the event ticket menu is not supported on galaxy devices, contact us through developer support and we will help you as quickly as possible.
Hye-In Min
Develop Samsung Pay
docqr code as well as necessary instructions step 4 user launches spay wa and scans the qr code displayed on the welcome ui if spay wa was not installed, the instructions on welcome ui would lead the user to download the app if necessary , register samsung account and login into the spay client step 5 → 6 the spay wa qr scanner would attempt to invoke the url embedded in the qrcode, more specifically the "initiate" request to save2pay server the server verifies the payload and notifies partner server that the spay wa is ready device specific information such as the device id, wallet id & user id will also be sent this step essentially links the samsung account with the regid the welcome ui would also show a message indicating the linking is successful step 7 → 8 partner server talks to the issuer to pre-provision the card and get encrypted issuerblob step 9 partner server returns the issuerblob in the notify response the issuerblob will be encrypted and can only be decrypted by the issuer server the blob will also have device and wallet specific information so it can only be provisioned to the device that made the 'initiate' request the exact format of the issuerblob depends on the issuer step 10 the issuerblob and additional information are returned to the device in the 'initiate' response steps 11 → 16 spay wa would go through the normal tokenization flow to add the token into spay using the issuerblob step 17 spay wa report to s2p server that the provision is completed for this regid step 18 s2p notifies partner server that provisioning is completed for this regid data types type json type format description string string size 2048 boolean boolean object object enum string pattern [a-za-z0-9_]{1,256 values from a limited set are only allowed each field of type enum will define the values allowed phonenumber string pattern [0-9+ -]+ uuid string pattern [a-za-z0-9-_]{26,128} unique identifie url string size 2048 must be an absolute url defined by rfc 2396 uniform resource identifiers uri generic syntax supported schemes - http, https timestamp number int64 - signed 64 bits unix epoch time in milliseconds countrycode string size 2 unique identifie
tutorials blockchain
blogqr code copy to clipboard share through android’s share intent setting up the project and handling sbk data to set up your android project with the sbk sdk, follow these instructions. to use functionalities offered by the sdk, first fetch an instance of the service. private scwservice mscwservice = scwservice.getinstance(); after you have fetched the scwservice instance, you can check whether your device is keystore-supported. if (mscwservice == null) { log.e("keystoreapp", "keystore is not supported on this device."); } if the device is keystore-supported, you can fetch the address list with getaddresslist(): mscwservice.getaddresslist(addresslistcallback, hdpathlist); the first parameter to getaddresslist() is a scwgetaddresslistcallback, which is executed after getting a response from keystore. scwgetaddresslistcallback() has two functions: onsuccess(): this function is called when the address list has been fetched successfully from keystore. onfailure(): this function is called if any errors occur while fetching the address list from keystore. scwservice.scwgetaddresslistcallback addresslistcallback = new scwservice.scwgetaddresslistcallback() { @override public void onsuccess(list addresslist) { //you can share your address from the address list here } @override public void onfailure(int failurecode) { //based on the failure code you can show appropriate alerts here } }; the second parameter is an arraylist of hierarchical deterministic (hd) path(s) whose addresses you want to fetch. if you want to learn more about hd paths, please refer to bip-44. for example, if you want to find the public address of your first five accounts, pass the following list as a parameter: arraylist hdpathlist = new arraylist<>(); hdpathlist.add("m/44'/60'/0'/0/0"); hdpathlist.add("m/44'/60'/0'/0/1"); hdpathlist.add("m/44'/60'/0'/0/2"); hdpathlist.add("m/44'/60'/0'/0/3"); hdpathlist.add("m/44'/60'/0'/0/4"); a sample app with the sbk sdk now that we are familiar with getaddresslist(), let’s dive into our sample application. features of our public address with sbk app are: fetch your public address from the keystore switch between multiple public addresses display qr code of the selected account copy selected address into the clipboard send the selected address with supported applications with android’s share intent initially, only the address of the first account is loaded. when you press the add button, the hd path of a new account is added to hdpathlist, and public addresses are fetched. public void addaccount(view view) { //account index is incremented by 1 to get the new account accountindex++; //hdpath of new account is added to hdpathlist hdpathlist.add("m/44'/60'/0'/0/" + accountindex); showtoast("hdpath added to list"); //public address of new account is fetched getpublicaddress(); } public addresses are fetched using the getpublicaddress() function depicted below. if the address list is fetched successfully, onsuccess() is called, and: the spinner’s previous data is cleared. the newly fetched list is added to the spinner. the ui is updated. if an error occurs, it is logged and available from logcat. common errors such as error_invalid_scw_app_id can be fixed very easily by enabling developer mode from the keystore application. you can find instructions on how to enable developer mode here. private void getpublicaddress() { scwservice.scwgetaddresslistcallback addresslistcallback = new scwservice.scwgetaddresslistcallback() { @override public void onsuccess(final list publicaddresslist) { //after address list has been fetched spinner is updated with new list runonuithread(new runnable() { @override public void run() { //clear existing list spinneradapter.clear(); //new list is added spinneradapter.addall(publicaddresslist); spinneradapter.notifydatasetchanged(); if (publicaddresslist.size() == 1) { showtoast(publicaddresslist.size() + " address fetched."); } else { showtoast(publicaddresslist.size() + " addresses fetched."); } } }); } @override public void onfailure(int errorcode) { switch (errorcode) { case scwerrorcode.error_invalid_scw_app_id: log.e(log_tag,"developer option not enabled."); break; case scwerrorcode.error_check_app_version_failed: log.e(log_tag,"check internet connection."); break; case scwerrorcode.error_op_fail: log.e(log_tag,"operation failed"); break; default: log.e(log_tag,"error with error code: "+errorcode); break; } } }; if (mscwservice == null) { log.e(log_tag, "keystore is not supported in this device."); } else { //if keystore is supported on device address list is requested mscwservice.getaddresslist(addresslistcallback, hdpathlist); } } after loading all addresses into the spinner, we can now select any address from it. once an address is selected, its qr code is generated and displayed. publicaddressspinner.setonitemselectedlistener(new adapterview.onitemselectedlistener() { @override public void onitemselected(adapterview<?> adapterview, view view, int position, long l) { //get selected address from spinner selectedaddress = adapterview.getitematposition(position).tostring(); selectedaddresstextview.settext(selectedaddress); qrcodeimageview.setimagebitmap(generateqrcode(selectedaddress)); } } in this application, we used “zxing” to generate the qr bitmap of the selected public address. private bitmap generateqrcode(string text) { multiformatwriter multiformatwriter = new multiformatwriter(); bitmap bitmap = bitmap.createbitmap(10, 10, bitmap.config.rgb_565); try { //text encoded to qr bitmatrix bitmatrix bitmatrix = multiformatwriter.encode(text, barcodeformat.qr_code, 1000, 1000); barcodeencoder barcodeencoder = new barcodeencoder(); //qr bitmatrix encoded to bitmap bitmap = barcodeencoder.createbitmap(bitmatrix); } catch (writerexception e) { e.printstacktrace(); } finally { return bitmap; } } when you press the copy button, the address is copied to the clipboard. public void copyaddress(view view) { clipboardmanager clipboardmanager = (clipboardmanager) getsystemservice(context.clipboard_service); clipdata clipdata = clipdata.newplaintext("public address", selectedaddress); clipboardmanager.setprimaryclip(clipdata); toast.maketext(this, "address copied", toast.length_short).show(); } we can also share the selected public address using the android action_send intent. public void shareaddress(view view) { intent sendintent = new intent(); sendintent.setaction(intent.action_send); sendintent.putextra(intent.extra_text, selectedaddress); sendintent.settype("text/plain"); startactivity(sendintent); } conclusion now that you know more about the samsung blockchain keystore sdk, you can use it to enrich your blockchain application. additional resources: download the sbk example app more information on keystore sdk
Shuvo Saha
Learn Code Lab
codelabqr code using the device qr code could be helpful while device onboarding qr code should have format like below refer here for more details urlhttps //qr samsungiots com/?m={your mnid}&s={device onboardingid}&r={device serialnumber} {your mnid} 4-digit alphanumeric mnid of your account {device onboardingid} 3-digit number onboarding id, you can find it from your developer workspace project device onboarding > other info page {device serialnumber} device serial number which is registered at your developer workspace project you can simply generate qr code with using below python script import qrcode mnid = 'ffff' # "ffff" is an example you should replace it with yours onboardingid = '111' # "111" is an example you should replace it with yours serialnumber = 'stdktest0001' # "stdktest0001" is an exmaple you should replace it with yours qrurl = 'https //qr samsungiots com/?m=' + mnid + '&s=' + onboardingid + '&r=' + serialnumber img = qrcode make qrurl img save serialnumber + ' png' qrcode qrcode box_size=10, border=4 write device application open and edit sample device app currently, you are doing the code lab example, which is located at apps/esp32/code_lab_example directory in the github repository download onboarding_profile json from the overview of your device in developer workspace copy onboarding_profile json file into your application directory, apps/esp32/code_lab_example/main $ cd ~/workspace/st-device-sdk-c-ref/apps/esp32/code_lab_example/main/ $ cp ~/downloads/onboarding_config json copy device_info json from tools/keygen/linux/output_{serialnumber} which contains your device specific information to application directory, apps/esp32/code_lab_example/main $ cd ~/workspace/st-device-sdk-c-ref/iot-core/tools/keygen/ $ cp output_{serialnumber}/device_info json ~/workspace/st-device-sdk-c-ref/apps/esp32/code_lab_example/main/ firmwareversion version string privatekey base64 encoded ed25519 private key this value should be paired with what you registered to developer workspace publickey base64 encoded ed25519 public key this value should be same with what you registered to developer workspace serialnumber this value should be same with what you registered to developer workspace { "deviceinfo" { "firmwareversion" "switch_example_001", "privatekey" "dh**jkmrd5x****bav+fgoxa3qzfnw3v****jhxomd0=", "publickey" "nfn5x***uqusq****zhobsfaaop9***kndlnjdjrew=", "serialnumber" "stdk**e90w***ucx" } } open sample application source code browse in apps/esp32/code_lab_example/main/ directory open main c file write your device application code this example already has cloud connection functionality using smartthings sdk apis void app_main void { /** easily integrate your direct connected device using the direct connected devices sdk the sdk manages all mqtt topics and onboarding requirements, freeing you to focus on the capabilities of your device that is, you can simply develop a basic application by just calling the apis provided by st_iot_core layer like below // create a iot context 1 st_conn_init ; // create a handle to process capability 2 st_cap_handle_init ; called in function 'capability_init' // register a callback function to process capability command when it comes from the smartthings server 3 st_cap_cmd_set_cb ; called in function 'capability_init' // process on-boarding procedure there is nothing more to do on the app side than call the api 4 st_conn_start ; */ unsigned char *onboarding_config = unsigned char * onboarding_config_start; unsigned int onboarding_config_len = onboarding_config_end - onboarding_config_start; unsigned char *device_info = unsigned char * device_info_start; unsigned int device_info_len = device_info_end - device_info_start; int err; iot_gpio_init ; xtaskcreate app_main_task, "app_main_task", 4096, null, 10, null ; //create a iot context iot_ctx = st_conn_init onboarding_config, onboarding_config_len, device_info, device_info_len ; if iot_ctx != null { err = st_conn_set_noti_cb iot_ctx, iot_noti_cb, null ; if err printf "fail to set notification callback function\n" ; } else { printf "fail to create the iot_context\n" ; } //create a handle to process capability and initialize capability info capability_init ; //connect to server err = st_conn_start iot_ctx, st_status_cb &iot_status_cb, iot_status_all, null, null ; if err { printf "fail to start connection err %d\n", err ; } } complete your command callback function for each capability the command callback function should contain your device control upon each command such as led on or off control capability example for each capability would be helpful to handle attribute command for each capability you can find it at apps/capability_example/main static void update_switch_state int switch_state { const char* switch_value; if switch_state == switch_on { switch_value = caps_helper_switch attr_switch value_on; } else { switch_value = caps_helper_switch attr_switch value_off; } //todo set switch attribute value and send // // example //=============================================================================== // cap_switch_data->set_switch_value cap_switch_data, switch_value ; // cap_switch_data->attr_switch_send cap_switch_data ; //=============================================================================== } static int get_switch_state void { const char* switch_value; int switch_state = switch_off; //todo get switch attribute value // // example //=============================================================================== // switch_value = cap_switch_data->get_switch_value cap_switch_data ; // // if !strcmp switch_value, caps_helper_switch attr_switch value_on { // switch_state = switch_on; // } else if !strcmp switch_value, caps_helper_switch attr_switch value_off { // switch_state = switch_off; // } //=============================================================================== return switch_state; } static void cap_switch_cmd_cb struct caps_switch_data *caps_data { int switch_state = get_switch_state ; set_led_mode switch_state ; } static void capability_init { //todo initialize switch capability with using capability sample's initializae function // // example // //=============================================================================== // cap_switch_data = caps_switch_initialize iot_ctx, "main", null, null ; // if cap_switch_data { // const char *switch_init_value = caps_helper_switch attr_switch value_on; // // cap_switch_data->cmd_on_usr_cb = cap_switch_cmd_cb; // cap_switch_data->cmd_off_usr_cb = cap_switch_cmd_cb; // // cap_switch_data->set_switch_value cap_switch_data, switch_init_value ; // } //=============================================================================== } build, flash, and monitor you can build, flash, and monitor in the console with the following $ cd ~/workspace/st-device-sdk-c-ref $ python3 build py apps/esp32/code_lab_example $ python3 build py apps/esp32/code_lab_example flash $ python3 build py apps/esp32/code_lab_example monitor or $ cd ~/workspace/st-device-sdk-c-ref $ python3 build py apps/esp32/code_lab_example flash monitor onboard and control the device via smartthings app onboarding a enable developer mode developer mode should be enabled on smartthings mobile application launch the smartthings app, go to dashboard > settings long-press about smartthings for 20 seconds enable the developer mode, then restart the smartthings app you can find out more information here b add a new device go to add device and click my testing devices or scan qr code you can now see and add your self-published devices control by smartthings application a device control from dashboard you can turn your device’s led on or off by clicking the button in the smartthings app b device control from plugin you can control various attributes and get more detailed information from the device plugin user interface you're done! congratulations! you have successfully achieved the goal of this code lab now, you can control your iot devices using the smartthings app all by yourself! if you're having trouble, you may download this file smartthings device sdk complete code 2 49 kb
Develop Samsung Wallet
docqr 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 zxing-barcodeformat code name description apiaztec 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 locations locations refer to place information that denotes where a card can be used using this information, samsung wallet can show a map, place name, and address additionally, location information can be used to provide location-based services lbs location information can be represented by a json array and up to 10 locations can be specified notice map services are only available in certain countries json format key type requirement description [] lat double optional latitude [] lng double optional longitude [] address string required string containing the full address [] name string required branch name example * location information for the entrance to oracle park [ { "lat" 37 779337, "lng" -122 388755, "address" "24 willie mays plaza, san francisco, ca 94107", "name" "willie mays plaza" }, { "lat" 37 77814, "lng" -122 390836, "address" "king st, san francisco, ca 94107", "name" "king st" } ] 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 key type requirement description count integer required size of information info[] object arrays required container of information info[] title string required title * need either content or chart info[] content[] string arrays optional content text info[] chart object optional chart data info[] chart headers[] string arrays optional header of chart info[] chart body[] array required body of chart info[] chart metadata[] string arrays optional metadata of chart * units or additional information of chart example * extra information for a boarding pass { "count" 3, "info" [ { "title" "baggage allowance", "content" [ "15 kg" ] }, { "title" "boarding priority", "content" [ "yes" ] }, { "title" "seat class", "content" [ "economy plus" ] } ] } * an example case of long content being allowed movie ticket policy { "count" 2, "info" [ { "title" "refunds and exchanges", "content" [ "refunds and exchanges of movie ticket s are available in certain limited circumstances ", "movie tickets purchased through the services include a non-refundable convenience fee before purchasing your movie ticket s we urge you to confirm the title, time, location and quantity of tickets for the movie you wish to see " ] }, { "title" "changes to ticket policy", "content" [ "from time to time, we may revise this ticket policy you can determine when this ticket policy was last revised by referring to the top of this page any changes to this ticket policy will become effective upon posting of the revised ticket policy on the internet, accessible through the services " ] } ] } * example usage of charts { "count" 1, "info" [{ "title" "paygo price guide for usage", "chart" { "headers" ["grade", "round", "one-way"], "body" [ ["platinum", "$25", "$10"], ["gold", "$30", "$15"], ["silver", "$40", "$20"] ], "metadata" "unit /h" } }] } 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 links linkable data which provides additional information in the following format json format key type requirement description count integer required size of links info[] array of objects required container of links info[] link string required link url info[] type string required view type that will run the link* allowed values web, app, browser info[] text string optional text of the link example { "count" 1, "info" [{ "link" "https //samsung external info link", "type" "web", "text" "see more information" }] } classification classification defines different kinds of people who can use the cards json format key type requirement description person[] array of object required container of person list who can use the card person[] category string required category name person[] count string required number of person 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 key type requirement description [] date string required transaction date [] amount string optional amount value [] description string optional description example * an example for payasyougo-evcharge-transactions [ { "date" "2023-09-10 12 00 00", "amount" "50,000 won", "description" "suwon station branch" }, { "date" "2023-09-20 18 00 00", "amount" "70,000 won", "description" "gangnam central branch" } ] authentication defines the data format to authenticate the user registering/updating the card if need a custom user verification process, please get in touch with us via tech support authentication data set case type value description connecting information ci user’s ci value identifier of identity verification agency samsung account sa user’s samsung account verifying that the signed-in samsung account on the user's galaxy device matches subscriber identity module sim sim card information on mobile telephone devices verify the sim information being used on the user's mobile phone one-time password otp dynamic password the temporary password provided by the partner to the user is verified by receiving user input during the add to samsung wallet process access token token token to verify data retrieval request token data included in card data is used as a key accessed when querying a partner server this tokenized key can be reissued when the partner delivers updated card data example type sample data ci {"ci" "hsd0iuf9bew8ugb7wqeu6i"} sa {"account" "samsungwallet@samsung com"} sim [{"uiccid" "abcderwyt","telno" "821012345678","isprimary" true},{"uiccid" "abcderwys","telno" "01012345679","isprimary" false}] otp {"otp" "947253"} token {"x-access-token" "7c8d38690d0e3b6aa077198abd2554a3a7940b52cf86bd690c1"} provisioning defines access control data for service providers to configure additional features with user's card json format key type requirement description provision feature string required a specified feature defined in wallet card * when setting up a wallet card, prior selection or consultation is required * use the value selected when setting up your wallet card in the partner portal provision type string required a provisioning type defined in wallet card * when setting up a wallet card, prior selection or consultation is required * use the value selected when setting up your wallet card in the partner portal provision module string required a module defined to use in provisioning process in wallet card * use the value selected when setting up your wallet card in the partner portal provision identifier string optional a identifier intended to be used in provisioning process * suggestion {package-name}, {applicationid}, {library}, {promised-identifier} provision data string optional 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 features feature attribute name description nfc nfc communication feature with designated protocol provision types type attribute name description sdk service provider protocol providing sdk message message in a promised format is utilized to convey identifiers, credentials, or any sort of dataset provision modules module attribute name description ese embedded secure element in mobile devices to provide security features samsung wallet app or any authorized agent with access rights can manage the secure element using this corresponding module to utilize this corresponding module, the applet to be installed on this module must be provided beforehand, and obtaining authorization for ssd creation and access control might be required for more detailed requirements, please refer to our technical inquiry se-usim universal subscriber identity module usim functions as a secure data repository, storing essential information including user profiles, contact lists, text messages, and application data utilizing advanced security measures like pin codes and cryptography, the usim guarantees the integrity and confidentiality of all stored data furthermore, it empowers users to securely access network services and authenticate their identities during financial transactions or when handling sensitive information consequently, the usim operates as a trustworthy platform for managing sensitive data and enabling secure communications between users and service providers however, to utilize this module, an additional software development kit sdk may be required for seamless integration and access app samsung wallet application handles access control data example 'data' field needs to be mutually negotiated with samsung wallet team case feature type module identifier data partner provides apdu bundle for ese nfc message ese partner-apdu-01 {"accesskey" "abcdefg","apdus" "{apdu-bundle}"} partner provides sdk for ese nfc sdk ese partner-sdk-ese-01 {"apppackagename" "com partner wallet","appkey" "abcdefaei;fadaf=","refid" "virehgqerurt932m125215","provider" "sec","deviceid" "0000000000000000","authcode" "43jkl6h3l4"} partner provides sdk for usim nfc sdk se-usim partner-sdk-usim-01 {"apppackagename" "com partner wallet","appkey" "abcdefaei;fadaf=","refid" "virehgqerurt932m125215","provider" "kt","msisdn" "01012345678","deviceid" "0000000000000000","authcode" "43jkl6h3l4"} partner provides credential that meet a specific protocol nfc message app partner-protocol-app-01 {"publickey" "{publickey}","message" "{message}"} partner provides credential that meet a specific protocol for ese nfc message ese partner-protocol-ese-01 {"accesskey" "abcdefg","publickey" "{publickey}","message" "{message}"} nfc feature using message on app nfc message app com samsung wallet applet {"format" "ndef","publickey" "{publickey}","message" "{message}"} check service available devices check samsung pay/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 example 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 security factors service flow how to generate key factors openssl is an open-source command-line tool that allows you to perform various ssl-related tasks this section explains how to create key factors for security with openssl private key a private key enables 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 it more secure, adding "-des3" on the command will encrypt with password certificate signing request csr certificate signing request csr is a necessary factor to get a signed certificate the csr includes the public key and some additional information, such as organization and country let's create a csr domain csr from the existing private key openssl req -out domain csr -key domain key -new -sha256 enter the csr information to complete the process the output will look like the following 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 an optional attribute the ‘common name’ field is important, as it needs to exactly match the fully qualified domain name fqdn of our domain for more information, refer to https //www openssl org card images loyalty description type bgimage + bgcolor bgimage only description display the bgimage and the bgcolor in a predefined ratio display bgimage fully description contact points [dev team] name address wallet technical support https //developer samsung com/dashboard/support
Develop Samsung Wallet
docqr code is scanned 53 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode, * see barcode format 54 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial, *see barcode format 55 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code, * see barcode format 56 barcode errorcorrectionlevel string 4 optional amount of redundancy or error correction data included in the code there are four error correction levels available in qr codes * code options l/m/q/h example airline boarding pass { "card" { "type" "boardingpass", "subtype" "airlines", "data" [ { "refid" "se16138353212584800001", "createdat" 1612660039000, "updatedat" 1612660039000, "language" "en", "attributes" { "title" "oo air boarding pass", "transittype" "airline", "groupingid" "se867132687321", "providerlogo" "https // /logoimage png", "providerlogo darkurl" "https // /logoimage png", "providername" "oo air", "user" "gil dong hong", "vehiclenumber" "se123", "seatclass" "economy plus", "seatnumber" "a15", "reservationnumber" "a238473-1", "boardingseqno" "32", "boardingtime" 1612660039000, "boardingtime utcoffset" "utc+09 00", "baggageallowance" "15kg", "departname" "seoul/incheon", "departcode" "inc", "departterminal" "c", "departgate" "1", "estimatedoractualstartdate" 1612660039000, "estimatedoractualstartdate utcoffset" "utc+09 00", "arrivename" "san francisco", "arrivecode" "sfo", "arriveterminal" "a", "arrivegate" "11", "estimatedoractualenddate" 1612660039000, "estimatedoractualenddate utcoffset" "utc-08 00", "bgcolor" "#ff00ff", "fontcolor" "dark", "applinklogo" "https // /applinklogo png", "applinkname" "oo airline", "applinkdata" "https //www ooairline com", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\"}", "barcode value" "cs16138353212584806754fg1802", "barcode serialtype" "barcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" }, "localization" [ { "language" "ko", "attributes" { "title" "oo 항공 탑승권", "providername" "oo 항공", "user" "홍 길동" } } ] } ] } } grouped bus boarding passes { "card" { "type" "boardingpass", "subtype" "buses", "data" [ { "refid" "ref-202211300001", "createdat" 1669782394000, "updatedat" 1669782394000, "language" "en", "attributes" { "title" "samsung bus boarding pass", "transittype" "bus", "groupingid" "grp-20221130001", "providerlogo" "https // /logoimage png", "providerlogo darkurl" "https // /logoimagedark png", "providername" "samsung bus", "user" "galaxy kim", "usertype" "adult", "transitoperator" "samsung transport co ", "seatnumber" "7-a", "reservationnumber" "rsvno-202211300001", "transitclass" "premium", "transitfare" "12,500 won", "boardingtime" 1671926400000, "boardingtime utcoffset" "utc+09 00", "departname" "east-seoul bus terminal", "departgate" "14", "estimatedoractualstartdate" 1671928200000, "estimatedoractualstartdate utcoffset" "utc+09 00", "arrivename" "suwon bus terminal", "bgcolor" "#f1c232", "fontcolor" "dark", "applinklogo" "https // /applinklogo png", "applinkname" "samsung bus", "applinkdata" "https //www samsung-bus com", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\"}", "barcode value" "161383532125848067541802", "barcode serialtype" "barcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" }, "localization" [ { "language" "ko", "attributes" { "title" "삼성버스 탑승권", "providername" "삼성버스", "user" "김 은하", "transitfare" "12,500 원" } } ] }, { "refid" "ref-202211300002", "createdat" 1669782394000, "updatedat" 1669782394000, "language" "en", "attributes" { "title" "samsung bus boarding pass", "transittype" "bus", "groupingid" "grp-20221130001", "providerlogo" "https // /logoimage png", "providerlogo darkurl" "https // /logoimagedark png", "providername" "samsung bus", "user" "samsung sam", "usertype" "child", "transitoperator" "samsung transport co ", "seatnumber" "7-b", "reservationnumber" "rsvno-202211300002", "transitclass" "preminum", "transitfare" "9,000 won", "boardingtime" 1671926400000, "boardingtime utcoffset" "utc+09 00", "departname" "east-seoul bus terminal", "departgate" "14", "estimatedoractualstartdate" 1671928200000, "estimatedoractualstartdate utcoffset" "utc+09 00", "arrivename" "suwon bus terminal", "bgcolor" "#f1c232", "fontcolor" "#000000", "applinklogo" "https // /applinklogo png", "applinkname" "samsung bus", "applinkdata" "https //www samsung-bus com", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\"}", "barcode value" "161383532125848067541802", "barcode serialtype" "barcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" }, "localization" [ { "language" "ko", "attributes" { "title" "삼성버스 탑승권", "providername" "삼성버스", "user" "사만다 삼성", "transitfare" "9,000 원" } } ] } ] } } event ticket 'event ticket' cards support event commodities for performances, sports, movies, entrances, and etc event tickets in wallet can provide additional information about the event and an alarm before the event time and expiration ticket cards support event commodities for performances, sports, movies, and entrance wallet card type wallet card subtype ticket performances, sports, movies, entrances, others -performances -movies -sports -entrances type value description attributes {fields} 1 title string 32 required main title e g , mlb ticket 2 category string 16 optional ticket category * this will be deprecated 3 eventid string 32 optional if full cancelation of the event occurs, find and process all tickets with this id 4 groupingid string 32 optional identifier used to group related cards 5 orderid string 32 optional a unique identifier for an order 6 mainimg string 256 required url for main ticket image the file size should not exceed 512 kb 7 subtitle1 string 32 optional the auxiliary field which displays supporting information 8 logoimage string 256 required logo image url to be displayed in the card item the file size should not exceed 256 kb 9 logoimage darkurl string 256 required logo image url in dark mode the file size should not exceed 256 kb 10 logoimage lighturl string 256 required logo image url in light mode the file size should not exceed 256 kb 11 wideimage string 256 optional wide horizontal image url displayed on the card information screen the file size should not exceed 256 kb 12 providername string 32 required ticket provider name 13 providerviewlink string 512 optional link to additional information from the provider* see links format 14 classification string 16 optional classification of tickets use onetime, regular, or annual * default onetime 15 holdername string 64 optional name of card holders 16 idphoto string 200000 optional holder’s photo image data encoded base64 17 idphoto format string 32 optional image file formate g , jpeg, png * unsupported image formats may exist 18 idphoto status string 16 optional status of the dataallowed value unchanged 19 grade string 32 optional ticket grade 20 seatclass string 32 optional seat class 21 entrance string 64 optional entrance gate 22 seatnumber string 256 optional seat location 23 seatlayoutimage string 256 optional url of the seat layout image the file size should not exceed 512 kb 24 issuedate long 13 required issue date epoch timestamp in milliseconds 25 reservationnumber string 32 required reservation number 26 user string 64 optional name of person who made the reservation 27 certification string 16 optional ticket certification e g ,r, as a film rating 28 reactivatableyn string 1 optional flag whether the card is able to activate an expired ticket temporarily either 'y' or 'n' * default 'n' 29 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n'* default 'n' 30 nonetworksupportyn string 1 optional set whether to support to open the wallet card under 'no network' status either 'y' or 'n' * default 'n' 31 startdate long 13 required start date displayed start date epoch timestamp in milliseconds 32 enddate long 13 optional end date displayed end date epoch timestamp in milliseconds * if null, the card will expire in 10 hours from startdate 33 person1 string 512 optional number of persons by category * see classification format 34 locations string 1024 optional list of locations where the card can be used * see location format 35 noticedesc string 5000 required text of the notice * long content is allowed * see additional information format 36 groupinfo1 string 64 optional the first common information with the same groupingid 37 groupinfo2 string 64 optional the second common information with the same groupingid *it is recommended to set groupinfo1 first 38 groupinfo3 string 64 optional the third common information with the same 'groupingid' *it is recommended to set groupinfo1, groupinfo2 first 39 csinfo string 512 optional providers’ customer service informationusing data in json format converted to escape string * allowed items call, email, website, facebook, youtube, or instagram* see the example below 40 privacymodeyn string 1 optional whether or not to require user authentication when using the cardeither ‘y’ or ‘n’* default ‘n’ 41 applinklogo string 256 required app link image url the file size should not exceed 256 kb 42 applinkname string 32 required app link name 43 applinkdata string 256 required information about the partner app link 44 bgcolor string 8 optional color of the card art e g , #00ffff 45 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 46 blinkcolor string 8 optional color of the blinking effect in the indicator areae g , #00ffff 47 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 48 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode * see barcode format 49 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial * see barcode format 50 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code * see barcode format 51 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 52 barcode interval string 4 optional update interval if support for dynamic updatesepoch timestamp in milliseconds example { "card" { "type" "ticket", "subtype" "entrances", "data" [ { "refid" "ent-ticket-0613001", "createdat" 1686657600000, "updatedat" 1686657600000, "language" "en", "attributes" { "title" "galaxy land entrance ticket", "subtitle1" "standard", "classification" "annual", "groupingid" "group-0613001", "orderid" "ent-0613001", "mainimg" "https // /main png", "logoimage" "https // /logo png", "providername" "galaxy entertainment", "logoimage darkurl" "https // /logo-dark png", "issuedate" 1686657600000, "reservationnumber" "glx-0613-001", "startdate" 1686657600000, "enddate" 1718280000000, "holdername" "kim eunha", "idphoto data" "base64-encoded{image-file-data}", "idphoto format" "png", "grade" "family", "person1" "{\"person\" [{\"category\" \"adult\", \"count\" 1 }]}", "locations" "[{\"lat\" 37 256518, \"lng\" 127 053516, \"address\" \"samsung-ro yeongtong-gu, suwon\", \"name\" \"galaxy land central park\"}]", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"notice 1\",\"content\" [\"description 1-1\",\"description 1-2\"]},{\"title\" \"notice 2\",\"content\" [\"description 2-1\"]}]}", "groupinfo1" "adult 1", "groupinfo2" "standard", "groupinfo3" "family", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\",\"instagram\" \"https //www instagram com/samsungwallet\",\"youtube\" \"https //www youtube com/@samsungwallet\",\"facebook\" \"https //www facebook com/samsungwallet\" }", "applinkname" "galaxy ticket", "applinklogo" "https // /applinklogo png", "applinkdata" "https //www applinkdata com", "bgcolor" "#e86d1f", "fontcolor" "light", "blinkcolor" "#e86d1f", "barcode value" "serial-0613-001", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" }, "localization" [ { "language" "ko", "attributes" { "title" "갤럭시 랜드 입장권", "holdername" "김은하", "person1" "{\"person\" [{\"category\" \"어른\", \"count\" 1 }]}", "locations" "[{\"lat\" 37 256518, \"lng\" 127 053516, \"address\" \"samsung-ro yeongtong-gu, suwon\", \"name\" \"갤럭시 랜드 센트럴 파크\"}]", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"공지사항 1\",\"content\" [\"설명 1-1\",\"설명 1-2\"]},{\"title\" \"공지사항 2\",\"content\" [\"설명 2-1\"]}]}", "groupinfo1" "어른 1" } } ] } ] } } coupon 'coupon' cards support digitized redeemable voucher coupons in wallet for various channels can provide alarms before expiration and update usage status wallet card type wallet card subtype coupon others type value description attributes {fields} 1 title string 32 required main title e g , free coupon 2 orderid string 32 optional unique identifier for an order 3 mainimg string 256 required url for the main coupon image the file size should not exceed 512 kb 4 logoimage string 256 optional logo image url to be displayed in the card item the file size should not exceed 256 kb 5 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb 6 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb 7 brandname string 32 optional brand name 8 expiry long 13 required expiration date in timestamp format issued data is cleaned up after it expires epoch timestamp in milliseconds 9 issuedate long 13 required issue date epoch timestamp in milliseconds 10 redeemdate long 13 optional date when the coupon is used epoch timestamp in milliseconds 11 noticedesc string 5000 optional text of notice * html is supported 12 editableyn string 1 required flag whether the coupon can be modified either 'y' or 'n' 13 deletableyn string 1 required flag whether the coupon can be deleted either 'y' or 'n' 14 displayredeembuttonyn string 1 required flag whether the use completion button is displayed either 'y' or 'n' 15 notificationyn string 1 required flag whether a notification related to the coupon is delivered either 'y' or 'n' 16 applinklogo string 256 required app link image url the file size should not exceed 256 kb 17 applinkname string 32 required app link name 18 applinkdata string 256 required information about the partner app link 19 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen captureeither 'y' or 'n'* default 'n' 20 barcode value string 4096 conditional actual data that is delivered when the barcode/qr code is scanned 21 barcode value2 string 4096 conditional the secondary barcode data * required if ptformat is dualbarcode or dualbarcodeserial 22 barcode serialtype string 32 optional presentation type e g ,serialnumber, barcode * see barcode format 23 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial * see barcode format 24 barcode ptsubformat string 32 optional presentation sub-format e g ,code_128, qr_code * see barcode format 25 barcode errorcorrectionlevel string 4 optional amount of redundancy or error correction data included in the code there are four error correction levels available in qr codes * code options l/m/q/h 26 balance string 50 optional initial balance this is going to be shown as received it is recommended to use a one letter currency symbol e g , $1,000, 1,000p 27 summaryurl string 256 optional webpage url that show details, such as balance 28 usermessage string 256 optional message to forward 29 sender string 64 optional name of sender 30 redeemurl string 256 optional link to redeem coupons example { "card" { "type" "coupon", "subtype" "others", "data" [ { "refid" "ref-230712-0001", "createdat" 1612660039000, "updatedat" 1612660039000, "language" "en", "attributes" { "title" "free coupon", "mainimg" "https // /main png", "brandname" "samsung coupon", "expiry" 1637802725000, "issuedate" 1637457125000, "editableyn" "n", "deletableyn" "n", "displayredeembuttonyn" "y", "notificationyn" "y", "applinkname" "oo voucher", "applinklogo" "https // /applinklogo png", "applinkdata" "https //www oocoupon com", "barcode value" "cs16138353212584806754fg1802 ", "barcode serialtype" "barcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" } } ] } } gift card 'gift card' cards support enrolling prepaid cards also known as gift certificate, gift voucher or gift token links urls to get balance and transactions history in real time is provided in the partners portal if a partner needs to integrate communication between samsung wallet server and the partner’s server to support the feature, the partner has to set the links in partners portal wallet card type wallet card subtype giftcard others type value description attributes {fields} 1 title string 32 required main title e g , samsung gift card 2 eventid string 36 optional if full cancelation of the event occurs, find and process all gift cards with this id 3 orderid string 36 optional a unique identifier for an order 4 subtitle1 string 32 optional the auxiliary field which displays supporting information 5 logoimage string 256 optional logo image url to be displayed in the card item the file size should not exceed 256 kb 6 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb 7 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb 8 providername string 32 required gift card provider name 9 user string 64 optional name of person who holds the gift card 10 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n', the default value is 'n' 11 startdate long 13 optional start date display start date epoch timestamp in milliseconds 12 enddate long 13 optional end date display end date epoch timestamp in milliseconds 13 locations string 1024 optional list of locations where the gift card can be used * see location format 14 noticedesc string 5000 optional text of the notice * long content is allowed * see additional information format 15 csinfo string 512 optional providers’ customer service informationusing data in json format converted to escape string * allowed items call, email, or website* see the example below 16 applinklogo string 256 required app link image url the file size should not exceed 256 kb 17 applinkname string 32 required app link name 18 applinkdata string 256 required information about the partner app link 19 bgimage string 256 optional url for card art background image the recommended size for image resources is 888 x 555 px 20 mainimg string 256 optional url for gift card image the file size should not exceed 512 kb 21 bgcolor string 8 optional color of the card art e g ,#00ffff 22 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 23 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 24 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 25 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode *see barcode format 26 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial *see barcode format 27 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code * see barcode format 28 barcode pin string 16 optional pin to show with a barcode 29 barcode errorcorrectionlevel string 4 optional amount of redundancy or error correction data included in the code there are four error correction levels available in qr codes * code options l/m/q/h 30 merchantid string 36 optional merchant identifier 31 merchantname string 32 optional merchant name to display 32 amount string 32 optional initial balance this is going to be shown as received e g , $1,000 33 balance string 32 optional remaining balance this is going to be shown as received e g , $1,000 34 summaryurl string 256 optional web url that show details, such as balance or transactions history example { "card" { "type" "giftcard", "subtype" "others", "data" [ { "refid" "b3fdc982-28c9-47a3-b02f-d484779698a7", "createdat" 1672574400000, "updatedat" 1672574400000, "language" "en", "attributes" { "title" "samsung gift card", "eventid" "event-001", "logoimage" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "logoimage darkurl" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "providername" "samsung gift card provider", "user" "ms jane doe", "noticedesc" "<ul><li>gift card test</li></ul>", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\" }", "applinklogo" "https //play-lh googleusercontent com/znfa1roz7hpv9j-jiacbjmjudl2x-fnuwte0oyvbbcwvf5vpzoqqikbxgk7d-aptvag=w240-h480-rw", "applinkname" "gift card link", "applinkdata" "https //www samsung com/", "bgcolor" "#0a1a4f", "fontcolor" "light", "blinkcolor" "#00ffff", "barcode value" "cs16138353212584806754fg1802", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" } } ] } } loyalty 'loyalty' cards support enrolling loyalty cards also known as membership links urls to get points in real time can be provided in the partners portal if a partner needs to integrate communication between samsung wallet server and the partner’s server to support the feature, the partner has to set the links in the partners portal wallet card type wallet card subtype loyalty others type value description attributes {fields} 1 title string 32 required main title e g ,samsung loyalty card 2 eventid string 36 optional if full cancelation of the event occurs, find and process all loyalty cards with this id 3 groupingid string 36 optional identifier used to group related cards 4 orderid string 36 optional a unique identifier for an order 5 subtitle1 string 32 optional the auxiliary field which displays supporting information 6 logoimage string 256 optional logo image url to be displayed in the card item the file size should not exceed 256 kb 7 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb 8 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb 9 providername string 32 required loyalty card provider name 10 startdate long 13 optional start date display start date epoch timestamp in milliseconds 11 enddate long 13 optional end date display end date epoch timestamp in milliseconds 12 locations string 1024 optional list of locations where the card can be used * see location format 13 noticedesc string 5000 optional text of notice *html supported 14 csinfo string 512 optional providers’ customer service information using data in json format converted to escape string * allowed items call, email, website, facebook, pinterest, x, or instagram * see the example below 15 applinklogo string 256 required app link image url the file size should not exceed 256 kb 16 applinkname string 32 required app link name 17 applinkdata string 256 required information about the partner app link 18 bgimage string 256 optional background image for a card art the recommended size for image resources is 888 x 555 px 19 bgcolor string 8 optional color of the card art e g , #00ffff 20 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 21 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 22 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 23 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode * see barcode format 24 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial * see barcode format 25 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code *see barcode format 26 barcode errorcorrectionlevel string 4 optional amount of redundancy or error correction data included in the code there are four error correction levels available in qr codes * code options l/m/q/h 27 merchantid string 36 optional merchant identifier 28 merchantname string 32 optional merchant name to display 29 amount string 32 optional total amount of points or initial balance this is going to be shown as received it is recommended to use a one letter currency symbol e g , $ 1,000, 1,000p 30 balance string 32 optional available points or remaining balance this is going to be shown as received it is recommended to use a one letter currency symbol e g , $ 1,000, 1,000p 31 summaryurl string 256 optional webpage url that shows details, such as balance or transactions history example { "card" { "type" "loyalty", "subtype" "others", "data" [ { "refid" "b3fdc982-28c9-47a3-b02f-d484779698a8", "createdat" 1672574400000, "updatedat" 1672574400000, "language" "en", "attributes" { "title" "samsung loyalty card", "eventid" "event-001", "logoimage" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "logoimage darkurl" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "providername" "samsung loyalty card provider", "noticedesc" "<ul><li>loyalty card test</li></ul>", "csinfo" " {\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\",\"instagram\" \"https //www instagram com/samsungwallet\",\"pinterest\" \"https //www pinterest com/samsungwallet\",\"x\" \"https //www twitter com/samsungwallet\",\"facebook\" \"https //www facebook com/samsungwallet\" }", "applinklogo" "https //play-lh googleusercontent com/znfa1roz7hpv9j-jiacbjmjudl2x-fnuwte0oyvbbcwvf5vpzoqqikbxgk7d-aptvag=w240-h480-rw", "applinkname" "loyalty card link", "applinkdata" "https //www samsung com/", "bgcolor" "#0a1a4f", "barcode value" "cs16138353212584806754fg1802", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code", "amount" "1,000p", "balance" "500p" } } ] } } digital ids 'digital id' cards are used to present identification for employees, students, drivers, guests, etc wallet card type wallet card subtype idcard employees, nationals, students, drivers, guests, others -employees -nationals -students -drivers type value description attributes {fields} 1 title string 32 required main title of cardse g , commercial access, employee badge 2 holdername string 64 required name of card holders 3 secondholdername string 64 optional second name of card holders 4 organization string 64 optional organization of card holders belongingi e , name of department, division, affiliation, association or team 5 position string 64 optional position of card holders 6 identifier string 64 required unique id value 7 idnumber string 64 optional representative value for an idi e , id number, document number 8 address string 256 optional address of card holders 9 placeoflocation string 64 optional place of location associated with the cardholder 10 idphoto string 128k optional holder’s photo image data encoded base64the file size should not be greater than 128 kb 11 idphoto format string 32 optional image file formate g , jpeg, png* unsupported image formats may exist 12 idphoto status string 16 optional status of the dataallowed value unchanged 13 document string 1024k optional first document of identity 14 document format string 32 optional document format- allowed value pdf, jpeg, png 15 document status string 16 optional status of the dataallowed value unchanged 16 issuedate long 13 required issue date epoch timestamp in milliseconds 17 birthdate string 16 optional date of birth 18 gender string 16 optional gender of card holders 19 classification string 16 optional classified identity type 20 expiry long 13 optional expiry date in timestamp format issued data is cleaned up after it expires epoch timestamp in milliseconds 21 contacts string 32 optional personal contact information such as phone number 22 logoimage string 256 optional logo image url to be displayed in card item the file size should not exceed 256 kb 23 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 24 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 25 logotext string 16 optional text as an alternative to logoimage 26 providername string 32 required content provider name 27 issuername string 32 optional place of issue or issuing authority name 28 extrainfo string 512 optional additional information* see additional information format 29 noticedesc string 1024 optional text of the notice * long content is allowed * see additional information format 30 csinfo string 512 required providers’ customer service information using data in json format converted to escape string * allowed items call, email, or website* see the example below 31 privacymodeyn string 1 optional whether or not to require user authentication when using the card either ‘y’ or ‘n’* default ‘n’ 32 applinklogo string 256 optional app link image url the file size should not exceed 256 kb 33 applinkname string 32 optional app link name 34 applinkdata string 256 optional information about the partner app link 35 locations string 1024 optional list of locations where the card can be used* see location format 36 coverimage string 256 optional card cover image urlthe file size should not exceed 512 kb the recommended size for image resources is 888 x 555 px 37 bgimage string 256 optional card background image urlthe file size should not exceed 512 kb the recommended size for image resources is 888 x 555 px 38 bgcolor string 8 optional color of the card art support hex color code e g , #015aaa 39 fontcolor string 8 optional color of the font on the card art allowed value black, white 40 blinkcolor string 8 optional color of the blinking effect in the indicator area support hex color code e g , #015aaa 41 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n' * default 'n' 42 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 43 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode, * see barcode format 44 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial, * see barcode format 45 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code, * see barcode format 46 barcode errorcorrectionlevel string 4 optional amount of redundancy or error correction data included in the code there are four error correction levels available in qr codes - code options l/m/q/h * default l 47 barcode interval string 4 optional update interval if support for dynamic updates epoch timestamp in milliseconds 48 authentication string 64 optional authentication data which meets choose options * see authentication for details 49 provision data string 512 optional elements to complete provisioning* see provisioning for details example { "card" { "type" "idcard", "subtype" "employees", "data" [ { "refid" "identitycard-bpo1r3e5-3313-0991-z404-sq12994414u8", "createdat" 1658385817000, "updatedat" 1658385817000, "language" "en", "attributes" { "title" "employee id card", "holdername" "kim samsung", "secondholdername" " samsung ", "organization" "digital wallet, mx", "position" "professional", "identifier" "2306070003", "idphoto" "{base64 encoded image data}", "idphoto format" "jpeg", "document" "{base64 encoded pdf data}", "document format" "pdf", "issuedate" "1658385817000", "expiry" "1765855665000", "logoimage" "https // /logo png", "providername" "samsung electronics", "extrainfo" "{\"count\" 1,\"info\" [{\"title\" \"shortcode\",\"content\" [\"404457\"]}]}", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"notice1\",\"content\" [\"description1\",\"description2\"]},{\"title\" \"notice2\",\"content\" [\"description1\",\"description2\"]}]}", "csinfo" "{\"call\" \"555 123-4567\", \"email\" \"cs@email com\", \"website\" \"https //homepage com/cs\"}", "applinkname" "samsung electronics", "applinklogo" "https // /applinklogo png", "applinkdata" "https //www applinkorweblink com", "coverimage" "https // /card/cover png", "bgimage" "https // /card/background png", "fontcolor" "dark", "barcode value" "5728306720836720763017601", "barcode serialtype" "qrcode", "barcode ptformat" "qrcode", "barcode ptsubformat" "qr_code", "barcode interval" "300000", "authentication" "samsung@samsung com", "provision data" "{\"appkey\" \"abcdefaei;fadaf=\",\"telno\" \"01012345678\",\"provider\" \"sec\",\"id\" \"0000000000000000\",\"authkey\" \"a3b7fgj0ea\"}" }, "localization" [ { "language" "ko", "attributes" { "title" "사원증", "holdername" "김삼성", "secondholdername" "kim samsung", "providername" "삼성전자" } } ] } ] } } pay as you go 'pay as you go' card supports a system that pays just before using the cost for the service wallet card type wallet card subtype payasyougo evcharges, others type value description attributes {fields} 1 title string 32 required main title of cardse g , samsung charge card 2 subtitle1 string 32 optional the auxiliary field which displays supporting information 3 logoimage string 256 optional logo image url to be displayed in the card item the file size must not be greater than 256 kb 4 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 5 logoimage lighturl string 256 optional logo image url in light mode the file size must not be greater than 256 kb * if this value does not exist, logoimage will be substituted 6 providername string 32 optional content provider name 7 holdername string 64 optional name of card holders 8 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either ‘y’ or ‘n’, the default value is ‘n’ 9 startdate long 13 optional start date display start date epoch timestamp in milliseconds 10 enddate long 13 optional end date display end date epoch timestamp in milliseconds 11 locations string 1024 optional list of locations where the card can be used * see location format 12 noticedesc string 5000 required text of the benefits using data in json format converted to escape string* see additional information information format 13 csinfo string 512 optional providers’ customer service information using data in json format converted to escape string * allowed items call, email, website, youtube, instagram, privacynotice, or termsandcondition* see the example below 14 applinklogo string 256 required app link image url the file size must not be greater than 256 kb 15 applinkname string 32 required app link name 16 applinkdata string 256 required information about the partner app link 17 bgimage string 256 optional url for card art background image 18 bgcolor string 8 optional color of the card art e g , #00ffff 19 fontcolor string 8 optional color of the font on the card art supported colors are white or black #000000 or #ffffff 20 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 21 barcode value string 4096 conditional barcode data, serial number * required if serialtype isn’t 'none' 22 barcode serialtype string 32 required presentation type barcode/qr/serial/none * see barcode format 23 barcode ptformat string 32 conditional presentation format * see barcode format* required if serialtype isn’t 'none' 24 barcode ptsubformat string 32 conditional 25 barcode pin string 16 optional pin to show with a barcode 26 identifier string 64 optional unique id value such as a membership number 27 grade string 32 optional grade value 28 authentication string 64 optional authentication data which meets choose options * see authentication for details 29 provision data string 512 optional elements to complete provisioning* see provisioning for details 30 transactions string 4096 optional transaction history * long content is allowed * see transactions format 31 summaryurl string 256 optional webpage url that show details, such as transactions example { "card" { "type" "payasyougo", "subtype" "evcharges", "data" [ { "refid" "b3fdc982-28c9-47a3-b02f-d484779698a7", "createdat" 1672574400000, "updatedat" 1672574400000, "language" "en", "attributes" { "title" "ev charge card", "logoimage" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "logoimage darkurl" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "providername" "ev-samsung", "holdername" "ms jane doe", "preventcaptureyn" "y", "enddate" 1772574400000, "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"포인트 적립\",\"content\" [\"결제금액 1000원당 포인트가 적립됩니다 \"]},{\"title\" \"포인트 사용방법\",\"content\" [\"적립하신 포인트의 유효기간은 발생일로부터 5년입니다 \",\"유효기간이 지난 포인트는 소멸됩니다 \"]}]}", "csinfo" " {\"call\" \"0000-0000\",\"website\" \"https //www samsungwallet com/cs/\",\"instagram\" \"https //www instagram com/samsungwallet\",\"youtube\" \"https //www youtube com/@samsungwallet\",\"privacynotice\" \"https //privacy samsungwallet com/\",\"termsandcondition\" \"https //www samsungwallet com/tnc\" }", "applinklogo" "https //play-lh googleusercontent com/znfa1roz7hpv9j-jiacbjmjudl2x-fnuwte0oyvbbcwvf5vpzoqqikbxgk7d-aptvag=w240-h480-rw", "applinkname" "ev charge link", "applinkdata" "https //www samsungev com/", "bgcolor" "#0a1a4f", "fontcolor" "#ffffff", "blinkcolor" "#00ffff", "barcode value" "1234000067890000", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code", "barcode pin" "1234", "identifier" "ev-001", "grade" "prime", "authentication" "sdaiwegjhewoghewoihgewo", "provision data" "asd2hfih9gwejdahgi4uaewhgeo6whgo12ewhgoewahg1iawpriuq7hg5wel", "transactions" "{\"transactions\" [{\"date\" \"2023-09-10 12 00 00\",\"description\" \"ev-samsung suwon\"},{\"date\" \"2023-09-20 18 00 00\",\"description\" \"ev-samsung gangnam\"}]}" } } ] } } generic card 'generic card' is defined for registering various forms of cards that aren't defined as other types partners can customize the items on the generic card to display by connecting them with card data wallet card type wallet card subtype generic others type value description attributes {fields} 1 title string 32 required main title 2 subtitle string 32 optional the auxiliary field which displays supporting information 3 providername string 32 required provider name 4 eventid string 32 optional event identifier 5 groupingid string 32 optional identifier used to group related cards 6 startdate long 13 required start date display start date epoch timestamp in milliseconds 7 startdate relativenotitime string 4 optional the relative time from startdate in minutes to provide a notification to the usere g , 5, 10, 15, 30, 60, and up to 2880 8 enddate long 13 optional end date display end date epoch timestamp in milliseconds 9 enddate relativenotitime string 4 optional the relative time from enddate in minutes to provide a notification to the usere g , 5, 10, 15, 30, 60, and up to 2880 10 mainimg string 256 required url for main image the file size should not exceed 512 kb 11 logoimage string 256 optional logo image url to be displayed in card item the file size should not exceed 256 kb 12 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 13 logoimage lighturl string 256 optional logo image url in light modethe file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 14 coverimage string 256 optional card cover image urlthe file size should not exceed 512 kb the recommended size for image resources is 888 x 555 px 15 bgimage string 256 optional card background image urlthe file size should not exceed 512 kbthe recommended size for image resources is 888 x 555 px 16 text{i} string 64 optional text item i 1~15 17 image{i} string 128k optional image item i 1~5 18 image{i} lighturl string 256 optional image item in light mode 19 image{i} darkurl string 256 optional image item in dark mode 20 image{i} status string 16 optional image item status 21 serial{i} value string 4096 optional actual data that is delivered when the barcode/qr code is scanned i 1~2 22 serial{i} serialtype string 32 optional presentation typee g , serialnumber, barcode, * see barcode format 23 serial{i} ptformat string 32 optional presentation formate g , barcode, qrcode, serial, * see barcode format 24 serial{i} ptsubformat string 32 optional presentation sub-formate g , code_128, qr_code, * see barcode format 25 serial{i} errorcorrectionlevel string 4 optional amount of redundancy or error correction data included in the code there are four error correction levels available in qr codes - code options l/m/q/h 26 noticedesc string 1024 required notice description * long content is allowed * see additional information format 27 csinfo string 512 optional providers’ customer service information using data in json format converted to escape string* allowed items calls, emails, or websites 28 providerviewlink string 512 optional link to additional information from the provider* see links format 29 privacymodeyn string 1 optional whether or not to require user authentication when using the cardeither ‘y’ or ‘n’* default ‘n’ 30 bgcolor string 8 optional color of the card art e g , #00ffff 31 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 32 blinkcolor string 8 optional color of the blinking effect in the indicator areae g , #00ffff 33 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n'* default 'n' 34 nonetworksupportyn string 1 optional sets whether to support to open the wallet card under 'no network' status either 'y' or 'n'* default 'n' 35 applinklogo string 256 required app link image url the file size should not exceed 256 kb 36 applinkname string 32 required app link name 37 applinkdata string 256 required information about the partner app link 38 locations string 1024 optional list of locations where the card can be used * see location format example { "card" { "type" "generic", "subtype" "others", "data" [ { "createdat" 1661745824345, "updatedat" 1661745824345, "language" "en", "refid" "refid-012345", "attributes" { "title" "samsung generic card", "subtitle" "personal members", "providername" "samsung", "startdate" 1661751274000, "startdate utcoffset" "utc+9", "enddate" 1761778000000, "enddate utcoffset" "utc+9", "enddate relativenotitime" "1440", "text1" "13047623", "text2" "silver", "text3" "suwon station branch", "text4" "031 000-1235", "timestamp1" 1761751274000, "timestamp1 utcoffset" "utc+9", "mainimg" "https //www samsung com/images/main png", "image1" "https //www samsung com/images/image1 png", "image1 darkurl" "https //www samsung com/images/dark png", "image1 lighturl" "https //www samsung com/images/light png", "serial1 value" ">1180mm2241b7c 0000000000000298060000000000 0 090870907 ", "serial1 serialtype" "qrcode", "serial1 ptformat" "qrcode", "serial1 ptsubformat" "qr_code", "bgcolor" "#ff5000", "fontcolor" "dark", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"notice1\",\"content\" [\"description1\",\"description2\"]},{\"title\" \"notice2\",\"content\" [\"description1\",\"description2\"]}]}", "csinfo" "{\"calls\" [{\"key\" \"emergency\",\"value\" \"82 123-4567\"},{\"key\" \"customer service\",\"value\" \"82 123-9876\"}],\"emails\" [{\"key\" \"cs team\",\"value\" \"cs@atwsample com\"}],\"websites\" [{\"key\" \"faq\",\"value\" \"https //atwhomepage com/faq\"},{\"key\" \"support\",\"value\" \"https //atwhomepage com/support\"}]}", "providerviewlink" "{\"count\" 1,\"info\" [{\"link\" \"https //samsung external info link/refid-012345\",\"type\" \"web\",\"text\" \"see more information\"}]}", "applinkdata" "https //www samsung com/", "applinklogo" "https //www samsung com/logo png", "applinkname" "samsung" }, "localization" [ { "language" "ko", "attributes" { "title" "삼성 제네릭 카드", "subtitle" "개인 멤버스", "providername" "삼성", "text2" "실버 등급", "text3" "수원역점" } } ] } ] } }
Develop Samsung Pay
docqr code with the device the samsung server sends a push notification to the samsung wallet application on the user's device they must respond to the notification within the time limit shown on the screen part 2 user confirmation on mobile device the user taps the samsung wallet push notification on their device the payment sheet is opened, and shows the payment summary to be confirmed the user selects the payment card they want to use and verifies the payment the payment credential information is generated and sent to the samsung server part 3 payment completion in the user's web browser, the web checkout ui displays the "verified" screen the payment credential is transmitted securely to your website you must submit the transaction information and payment credential to your payment provider for processing the user's purchase is complete service flow the following figure illustrates the samsung pay web checkout flow
Develop Samsung Pay
docqr code will be displayed and users can use their spay wa to scan the qr code welcomeurl has an expiration date, partner server should check if it's still valid before rendering if it's expired, a get call will return the new url request post /registrations body registration email description user email address type string validation optional example registration enforceemailmatching description enforce only spay wa with the same email address can provision enforcement is only against the email address that's provided by the partner type boolean default is false validation optional example true registration hideemail description hide email field type boolean default is false validation optional example registration phone description user phone number type phonenumber validation optional example registration enforcephonematching description enforce only spay wa with the same phone number can provision enforcement is only against the phone number that's provided by the partner type boolean validation optional default is false example true registration hidephone description hide phone field type boolean validation optional default is false example registration welcomecallbackurl description callback url that the welcome ui will redirect to once the user successfully linked a spay wa account type url validation optional example registration allowofflinecommunication description if true, s2p will communicate to the user via email and/or phone number to facilitate the provisioning process type boolean validation optional default is false example registration data description arbitrary data blob that'll be passed to the device when an account is linked type object validation optional example registration custom cardname description card name that'll show on the welcome page type string validation required example registration custom cardarturl description cardart url that'll show on the welcome page type url validation required example registration custom partnername description partner name that'll show on the welcome page type string validation required example registration custom partnerlogourl description partner logo url that'll show on the welcome page type url validation required example registration custom partnertncurl description partner tnc url that'll show on the welcome page type url validation optional example response status http/1 1 201 created header name value content-type application/json body registration id description registration id that identify this session type uuid validation required example registration status description registration status type enum - pending, linked validation required example pending registration welcomeurl description this is the url that partner can show to the user as an iframe a separate page it shows the qrcode and optionally user can enter email and phone number type url validation required example registration welcomeurlexpiration description welcomeurl expiration timestamp in milliseconds type timestamp validation required example example post /ext/v1/registrations { "email" "user@gmail com", "enforceemailmatching" true, "phone" "14089998888", "enforcephonematching" true, "custom" { "cardname" "xyz bank credit card", "cardarturl" "https //xyz com/cardart png", "partnername" "xyz bank", "partnerlogourl" "https //xyz com/logo png" } } http/1 1 201 created { "id" "395ce2e29485442cbd9bacdc77105126", "welcomeurl" "https //s2p stg mpay samsung com/v1/welcome/eyjlbmmioijbmju2r0nniiw iywxnijoizglyin0 s0dnxrskdkjw8sbh kg4uqhfwkkdnqrviihkaqshq_jayb99ct tizdzrwrn-qlhuzj4imuyv1sagehavyxluamarwa tlekqcerr0jklc-fnqkcva", "status" "pending", "welcomeurlexpiration" 1505953396844 } get registration check existing registration status and/or get new welcomeurl request get /registrations/{regid} headers name value validation partner-id partner id value assigned by samsung wallet required response status http/1 1 200 ok status name value content-type application/json body registration id description registration id that identify this session type uuid validation required example registration status description registration status type enum - pending, linked validation required example pending registration welcomeurl description this is the url that partner can show to the user as an iframe a separate page it shows the qrcode and optionally user can enter email and phone number type url validation required example registration welcomeurlexpiration description welcomeurl expiration timestamp in milliseconds type timestamp validation required example example http/1 1 200 ok { "id" "395ce2e29485442cbd9bacdc77105126", "welcomeurl" "https //s2p stg mpay samsung com/v1/welcome/eyjlbmmioijbmju2r0nniiw iywxnijoizglyin0 s0dnxrskdkjw8sbh kg4uqhfwkkdnqrviihkaqshq_jayb99ct tizdzrwrn-qlhuzj4imuyv1sagehavyxluamarwa tlekqcerr0jklc-fnqkcva", "status" "pending", "welcomeurlexpiration" 1505953396844 } errors common http error codes http code description application code message 400 bad request 400 1 invalid data 500 internal server error 500 1 internal server error 503 service not available 503 1 service temporarily unavailable retry-after header is required 503 service not available 503 2 api temporarily unavailable retry-after header is required
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.