{"id":723,"date":"2020-05-26T02:13:45","date_gmt":"2020-05-26T02:13:45","guid":{"rendered":"https:\/\/senitron.net\/developers\/?page_id=723"},"modified":"2025-08-14T14:47:28","modified_gmt":"2025-08-14T14:47:28","slug":"sales-returns","status":"publish","type":"page","link":"https:\/\/senitron.net\/developers\/sales-returns\/","title":{"rendered":"Sales &#038; Returns"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy\"><nav class=\"fusion-breadcrumbs fusion-breadcrumbs-1\" style=\"--awb-alignment:left;--awb-breadcrumb-sep:&#039;\/&#039;;text-align:left;\" aria-label=\"Breadcrumb\"><ol class=\"awb-breadcrumb-list\"><li class=\"fusion-breadcrumb-item awb-breadcrumb-sep\" ><a href=\"https:\/\/senitron.net\/developers\" class=\"fusion-breadcrumb-link\"><span >Home<\/span><\/a><\/li><\/ol><\/nav><div class=\"fusion-text fusion-text-1\"><h3><strong>Sales &amp; Returns <\/strong><\/h3>\n<p><strong><span style=\"color: #3366ff;\">Method 1: Pull-API - Fixed RFID POS Reader Pads <\/span><\/strong><span style=\"color: #3366ff;\"><span style=\"color: #3366ff;\"><b>Method 2: Senitron POS Assistant (windows app) <\/b><\/span> <span style=\"color: #3366ff;\"><b>Method 3: Senitron POS Assistant (web-based app | Lightspeed) Method 4: Push API \u2013 Via Senitron Hand-Held RFID Scanner <strong>Method 5: Commit Sales \/ Returns to Cloud-Endpoint (RFID POS) Method 6: Commit Sales \/ Returns to Cloud-Endpoint (External Software)<\/strong> <\/b><\/span><\/span> Note: The best practice methods are Method(s) 1\u00a0 and 4 <\/p>\n<\/div><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-separator fusion-full-width-sep\" style=\"margin-left: auto;margin-right: auto;width:100%;\"><div class=\"fusion-separator-border sep-double sep-solid\" style=\"--awb-height:20px;--awb-amount:20px;border-color:#e2e2e2;border-top-width:1px;border-bottom-width:1px;\"><\/div><\/div><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy\"><div class=\"fusion-text fusion-text-2\"><p> <strong>Method 1: Pull-API - Fixed RFID POS Reader Pads <\/strong> <\/p>\n<\/div><div class=\"accordian fusion-accordian\" style=\"--awb-border-size:1px;--awb-icon-size:16px;--awb-content-font-size:16px;--awb-icon-alignment:left;--awb-hover-color:#f9f9fb;--awb-border-color:#e2e2e2;--awb-background-color:#ffffff;--awb-divider-color:#e2e2e2;--awb-divider-hover-color:#e2e2e2;--awb-icon-color:#ffffff;--awb-title-color:#212934;--awb-content-color:#4a4e57;--awb-icon-box-color:#212934;--awb-toggle-hover-accent-color:#65bc7b;--awb-title-font-family:&quot;Open Sans&quot;;--awb-title-font-weight:400;--awb-title-font-style:normal;--awb-content-font-family:&quot;Open Sans&quot;;--awb-content-font-style:normal;--awb-content-font-weight:400;\"><div class=\"panel-group fusion-toggle-icon-boxed\" id=\"accordion-723-1\"><div class=\"fusion-panel panel-default panel-afa32251da5d0e464 fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_afa32251da5d0e464\"><a aria-expanded=\"false\" aria-controls=\"afa32251da5d0e464\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-1\" data-target=\"#afa32251da5d0e464\" href=\"#afa32251da5d0e464\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Brief Summary<\/span><\/a><\/h4><\/div><div id=\"afa32251da5d0e464\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_afa32251da5d0e464\"><div class=\"panel-body toggle-content fusion-clearfix\"> Any external software, on the same local network, can utilize the Senitron POS Service API, to read tags, and commit transactions. For example, External POS apps, may add an RFID scan button to read RFID tag(s)\/Label(s) via this Senitron service. The POS Service has a simple HTTP REST API available for communication, based on HTTP verbs, and configuration values passed as part of the URL path. Available commands:<\/p>\n<ul>\n<li>Start Reader<\/li>\n<li>Stop Reader<\/li>\n<li>Get Reader status<\/li>\n<li>Pull current reads<\/li>\n<li>Clear current reads<\/li>\n<li>Commit transaction<\/li>\n<\/ul>\n<p>Configuration required data:<\/p>\n<ul>\n<li>Store location (optional - depreciated, no longer needed, any value can be used)<\/li>\n<li>Client ID (optional - depreciated, no longer needed, any value can be used)<\/li>\n<li>Rfid Reader ID<\/li>\n<li>Transaction type<\/li>\n<\/ul>\n<\/div><\/div><\/div><div class=\"fusion-panel panel-default panel-e37fe2b7c46db5494 fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_e37fe2b7c46db5494\"><a aria-expanded=\"false\" aria-controls=\"e37fe2b7c46db5494\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-1\" data-target=\"#e37fe2b7c46db5494\" href=\"#e37fe2b7c46db5494\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Reader Start<\/span><\/a><\/h4><\/div><div id=\"e37fe2b7c46db5494\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_e37fe2b7c46db5494\"><div class=\"panel-body toggle-content fusion-clearfix\"> METHOD: POST URL: \/api\/pull\/start\/{location}\/{deviceId}\/{clientId}\/{transactionType} RESPONSE: 200 -&gt; OK 404 -&gt; Error, reason included in the response body To start a reader, make new HTTP request with \u201cmethod\u201d POST, you need to keep track of the reader state internally, as the POS Service assumes this will be the case to allow better control of the readers. <i>Example<\/i>: POST: <a href=\"http:\/\/localhost:8889\/api\/pull\/start\/001\/1000\/0\/0\">http:\/\/localhost:8889\/api\/pull\/start\/001\/1000\/0\/0<\/a> Note: localhost will usually be replaced with the IP address of a Senitron machine the same network. There for the post example will be http:\/\/192.168.2.20:8889\/api\/pull\/start\/001\/1000\/0\/0 <\/div><\/div><\/div><div class=\"fusion-panel panel-default panel-68e31751dd856f523 fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_68e31751dd856f523\"><a aria-expanded=\"false\" aria-controls=\"68e31751dd856f523\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-1\" data-target=\"#68e31751dd856f523\" href=\"#68e31751dd856f523\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Reader Stop<\/span><\/a><\/h4><\/div><div id=\"68e31751dd856f523\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_68e31751dd856f523\"><div class=\"panel-body toggle-content fusion-clearfix\"> METHOD: POST URL: \/api\/pull\/stop\/{location}\/{deviceId} RESPONSE: 200 -&gt; OK 400 -&gt; Error, no active session for the reader 404 -&gt; Error, reason included in the response body To stop a reader, make new HTTP request with \u201cmethod\u201d POST. <i>Example<\/i>: POST: <a href=\"http:\/\/localhost:8889\/api\/pull\/stop\/001\/1000\">http:\/\/localhost:8889\/api\/pull\/stop\/001\/1000<\/a> <\/div><\/div><\/div><div class=\"fusion-panel panel-default panel-617b4e9bd13f3710b fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_617b4e9bd13f3710b\"><a aria-expanded=\"false\" aria-controls=\"617b4e9bd13f3710b\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-1\" data-target=\"#617b4e9bd13f3710b\" href=\"#617b4e9bd13f3710b\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Reader Status<\/span><\/a><\/h4><\/div><div id=\"617b4e9bd13f3710b\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_617b4e9bd13f3710b\"><div class=\"panel-body toggle-content fusion-clearfix\"> METHOD: GET URL: \/api\/status\/{location}\/{deviceId} RESPONSE: 200 -&gt; OK, JSON object in the body with the reader status string 400 -&gt; Error, no active session for the reader 404 -&gt; Error, reason included in the response body To retrieve the current status of a started reader, make new HTTP request with \u201cmethod\u201d GET, the response body contains a JSON object, you can directly display to present the current reader status. <i>Example<\/i>: GET: <a href=\"http:\/\/localhost:8889\/api\/status\/001\/1000\">http:\/\/localhost:8889\/api\/status\/001\/1000<\/a> RESPONSE: { \"status\": \"Waiting for reader 10\u2026\" } OR: { \"status\": \u201cReader 10 Connected.\" } OR: { \"status\": \u201cError starting reader 10.\" } <\/div><\/div><\/div><div class=\"fusion-panel panel-default panel-7bf76f9a032d6252e fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_7bf76f9a032d6252e\"><a aria-expanded=\"false\" aria-controls=\"7bf76f9a032d6252e\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-1\" data-target=\"#7bf76f9a032d6252e\" href=\"#7bf76f9a032d6252e\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Pull Reads<\/span><\/a><\/h4><\/div><div id=\"7bf76f9a032d6252e\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_7bf76f9a032d6252e\"><div class=\"panel-body toggle-content fusion-clearfix\"> METHOD: GET URL: \/api\/pull\/{location}\/{deviceId} RESPONSE: 200 -&gt; OK, JSON object in the body with the reader status string 400 -&gt; Error, no active session for the reader 404 -&gt; Error, reason included in the response body To retrieve the currently read tags, make new HTTP request with \u201cmethod\u201d GET, if the specified reader is active, the response will contain an array of objects that include: Epc, Upc, Qty. <i>Example<\/i>: GET: <a href=\"http:\/\/localhost:8889\/api\/pull\/001\/1000\">http:\/\/localhost:8889\/api\/pull\/001\/1000<\/a> RESPONSE: [ {\"Epc\":\"000000000000000000000341\",\"Upc\":\"999999\",\"Qty\":1}, {\"Epc\":\"126000000000000000000060\",\"Upc\":\"999999\",\"Qty\":1}, {\"Epc\":\"126000000000000000000471\",\"Upc\":\"999999\",\"Qty\":1} ] <\/div><\/div><\/div><div class=\"fusion-panel panel-default panel-5e27876411d914fb5 fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_5e27876411d914fb5\"><a aria-expanded=\"false\" aria-controls=\"5e27876411d914fb5\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-1\" data-target=\"#5e27876411d914fb5\" href=\"#5e27876411d914fb5\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Clear Reads<\/span><\/a><\/h4><\/div><div id=\"5e27876411d914fb5\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_5e27876411d914fb5\"><div class=\"panel-body toggle-content fusion-clearfix\"> METHOD: POST URL: \/api\/pull\/clear\/{location}\/{deviceId} RESPONSE: 200 -&gt; OK 400 -&gt; Error, no active session for the reader 404 -&gt; Error, reason included in the response body To clear the currently read tags, make new HTTP request with \u201cmethod\u201d POST. <i>Example<\/i>: POST: <a href=\"http:\/\/localhost:8889\/api\/pull\/clear\/001\/1000\">http:\/\/localhost:8889\/api\/pull\/clear\/001\/1000<\/a> <\/div><\/div><\/div><div class=\"fusion-panel panel-default panel-9547c431f83b44dfa fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_9547c431f83b44dfa\"><a aria-expanded=\"false\" aria-controls=\"9547c431f83b44dfa\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-1\" data-target=\"#9547c431f83b44dfa\" href=\"#9547c431f83b44dfa\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Commit Transaction<\/span><\/a><\/h4><\/div><div id=\"9547c431f83b44dfa\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_9547c431f83b44dfa\"><div class=\"panel-body toggle-content fusion-clearfix\"> METHOD: POST URL: \/api\/transaction\/commit RESPONSE: 200 -&gt; OK 400 -&gt; Error, committing the transaction To commit a new transaction to the POS Service and get it uploaded, make new HTTP request with \u201cmethod\u201d POST, you will have to generate the transaction JSON structure expected, and send it on the request body marked with \u201ccontent-type\u201d to \u201capplication\/json\u201d. The transaction object needs to set the transaction type in both the \u201cName\u201d and \u201cTransactionMode\u201d property, the location from your settings should be set on the \u201cLocation\u201d property, if you have access to the amount for the items in the transaction, populate the \u201cTotal\u201d property with the sum of the item\u2019s prices; for the \u201cCount\u201d field you need to set the quantity of items in the transaction. NOTE: All the fields shown in the example request should be set, and if there\u2019s no data to fill them, use placeholder values like we do in the example. <i>Example<\/i>: POST: <a href=\"http:\/\/localhost:8889\/api\/transaction\/commit\">http:\/\/localhost:8889\/api\/transaction\/commit<\/a> BODY: { \"Name\": \"Sale\", \"Currency\": \"USD\", \"Location\": \"001\", \"TenantKey\": \"4\", \"Total\": \"0.00\", \"Reference4\": \"50\", \"DocumentId\": \"\", \"Id\": \"1\", \"Date\": \"2018-08-17 01:56:27\", \"Count\": 5, \"TransactionMode\": \"Sale\", \"TransactionDetails\": [ { \"Attr1\": \"\", \"Attr2\": \"\", \"ProductDesc\": \"\", \"ProductId\": \"117440512\", \"UnitPrice\": \"\", \"SalePrice\": \"\", \"EpcId\": \"307510BBC000000000000003\", \"ItemNo\": \"117440512\" } ] } <\/div><\/div><\/div><\/div><\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-3 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy\"><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-separator fusion-full-width-sep\" style=\"margin-left: auto;margin-right: auto;width:100%;\"><div class=\"fusion-separator-border sep-double sep-solid\" style=\"--awb-height:20px;--awb-amount:20px;border-color:#e2e2e2;border-top-width:1px;border-bottom-width:1px;\"><\/div><\/div><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-text fusion-text-3\"><p> <strong><b>Method 2: Senitron POS Assistant (windows app) <\/b><\/strong> <\/p>\n<\/div><div class=\"accordian fusion-accordian\" style=\"--awb-border-size:1px;--awb-icon-size:16px;--awb-content-font-size:16px;--awb-icon-alignment:left;--awb-hover-color:#f9f9fb;--awb-border-color:#e2e2e2;--awb-background-color:#ffffff;--awb-divider-color:#e2e2e2;--awb-divider-hover-color:#e2e2e2;--awb-icon-color:#ffffff;--awb-title-color:#212934;--awb-content-color:#4a4e57;--awb-icon-box-color:#212934;--awb-toggle-hover-accent-color:#65bc7b;--awb-title-font-family:&quot;Open Sans&quot;;--awb-title-font-weight:400;--awb-title-font-style:normal;--awb-content-font-family:&quot;Open Sans&quot;;--awb-content-font-style:normal;--awb-content-font-weight:400;\"><div class=\"panel-group fusion-toggle-icon-boxed\" id=\"accordion-723-2\"><div class=\"fusion-panel panel-default panel-679938a40cbc94912 fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_679938a40cbc94912\"><a aria-expanded=\"false\" aria-controls=\"679938a40cbc94912\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-2\" data-target=\"#679938a40cbc94912\" href=\"#679938a40cbc94912\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Brief Summary<\/span><\/a><\/h4><\/div><div id=\"679938a40cbc94912\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_679938a40cbc94912\"><div class=\"panel-body toggle-content fusion-clearfix\"> The Senitron POS Assistant, Windows App, is an independent software which sits on top of the typical POS UI, and allows the users to click the Sales button, to have the app read items via a fixed-tabletop-RID-reader. The read items,\u00a0 populate on to the POS assistant app, and at the same time into the POS UI, using Windows Targeting mechanisms. <img decoding=\"async\" class=\"alignnone size-medium wp-image-732\" src=\"https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/SENITRON-RFID-POS-ASSISTANT-3-300x87.jpg\" alt=\"\" width=\"300\" height=\"87\" srcset=\"https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/SENITRON-RFID-POS-ASSISTANT-3-200x58.jpg 200w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/SENITRON-RFID-POS-ASSISTANT-3-300x87.jpg 300w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/SENITRON-RFID-POS-ASSISTANT-3-400x116.jpg 400w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/SENITRON-RFID-POS-ASSISTANT-3-600x175.jpg 600w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/SENITRON-RFID-POS-ASSISTANT-3-768x224.jpg 768w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/SENITRON-RFID-POS-ASSISTANT-3-800x233.jpg 800w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/SENITRON-RFID-POS-ASSISTANT-3-1024x298.jpg 1024w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/SENITRON-RFID-POS-ASSISTANT-3.jpg 1271w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/> Once items are sold or returned using the app &amp; tool, both Senitron and POS \/ External system will decrease\/increase their quantities in parallel, keeping the inventories properly in SYNC. There are Pro's and Con's of using this app. The benefit is that, any company can quickly start using RFID with their POS\/external system, with out having to do integrations. The disadvantage is that this method, is more prone to human error, where the personnel, may not have the POS ready to accept the RFID reads, and or the users can circumvent using the POS assistant, and may just ring up items on the POS as a normal barcode system (end-effect is that Senitron will fall out of sync with the POS system's inventory)\u00a0 (Method 1 which is an more in-depth integrated method is always perfected when possible, and would especially be very effective if the POS \/ external software makers, blocks any methods where the users can try to circumvent POS RFID reading for sales and returns. <\/div><\/div><\/div><div class=\"fusion-panel panel-default panel-81590ab3606af1ca6 fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_81590ab3606af1ca6\"><a aria-expanded=\"false\" aria-controls=\"81590ab3606af1ca6\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-2\" data-target=\"#81590ab3606af1ca6\" href=\"#81590ab3606af1ca6\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Download Link<\/span><\/a><\/h4><\/div><div id=\"81590ab3606af1ca6\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_81590ab3606af1ca6\"><div class=\"panel-body toggle-content fusion-clearfix\"> <a href=\"http:\/\/senitron.net\/downloads\/POS%20Assistant\/\"><span style=\"color: #3366ff;\">http:\/\/senitron.net\/downloads\/POS%20Assistant\/<\/span><\/a> <\/div><\/div><\/div><\/div><\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-4 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy\"><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-separator fusion-full-width-sep\" style=\"margin-left: auto;margin-right: auto;width:100%;\"><div class=\"fusion-separator-border sep-double sep-solid\" style=\"--awb-height:20px;--awb-amount:20px;border-color:#e2e2e2;border-top-width:1px;border-bottom-width:1px;\"><\/div><\/div><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-text fusion-text-4\"><p> <strong><b>Method 3: Senitron POS Assistant (web-based app | Lightspeed)<\/b><\/strong> <\/p>\n<\/div><div class=\"accordian fusion-accordian\" style=\"--awb-border-size:1px;--awb-icon-size:16px;--awb-content-font-size:16px;--awb-icon-alignment:left;--awb-hover-color:#f9f9fb;--awb-border-color:#e2e2e2;--awb-background-color:#ffffff;--awb-divider-color:#e2e2e2;--awb-divider-hover-color:#e2e2e2;--awb-icon-color:#ffffff;--awb-title-color:#212934;--awb-content-color:#4a4e57;--awb-icon-box-color:#212934;--awb-toggle-hover-accent-color:#65bc7b;--awb-title-font-family:&quot;Open Sans&quot;;--awb-title-font-weight:400;--awb-title-font-style:normal;--awb-content-font-family:&quot;Open Sans&quot;;--awb-content-font-style:normal;--awb-content-font-weight:400;\"><div class=\"panel-group fusion-toggle-icon-boxed\" id=\"accordion-723-3\"><div class=\"fusion-panel panel-default panel-9d47e60a8ea612a5c fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_9d47e60a8ea612a5c\"><a aria-expanded=\"false\" aria-controls=\"9d47e60a8ea612a5c\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-3\" data-target=\"#9d47e60a8ea612a5c\" href=\"#9d47e60a8ea612a5c\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Brief Summary<\/span><\/a><\/h4><\/div><div id=\"9d47e60a8ea612a5c\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_9d47e60a8ea612a5c\"><div class=\"panel-body toggle-content fusion-clearfix\"> The web-based Senitron POS Assistant app, is a quick way for web-based applications, such as Lightspeed POS, and others to quickly send users to the RFID UI, so that RFID reads can take place, and once finalized, the users are sent back to their web-based programs (like Lightpseed) at which time, the data which was read via RFID is committed back via API's to the external app, and populated on to the screen of the external app. Video Demo\u00a0 <a href=\"https:\/\/www.youtube.com\/watch?v=0ZMEvsdSWJQ\"><span style=\"color: #3366ff;\">https:\/\/www.youtube.com\/watch?v=0ZMEvsdSWJQ<\/span><\/a> <img decoding=\"async\" class=\"alignnone size-medium wp-image-736\" src=\"https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/pos4-300x107.jpg\" alt=\"\" width=\"300\" height=\"107\" srcset=\"https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/pos4-200x71.jpg 200w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/pos4-300x107.jpg 300w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/pos4-400x143.jpg 400w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/pos4-600x214.jpg 600w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/pos4-768x274.jpg 768w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/pos4-800x286.jpg 800w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/pos4-940x337.jpg 940w, https:\/\/senitron.net\/developers\/wp-content\/uploads\/2020\/05\/pos4.jpg 943w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/> <\/div><\/div><\/div><\/div><\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-5 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-4 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy\"><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-separator fusion-full-width-sep\" style=\"margin-left: auto;margin-right: auto;width:100%;\"><div class=\"fusion-separator-border sep-double sep-solid\" style=\"--awb-height:20px;--awb-amount:20px;border-color:#e2e2e2;border-top-width:1px;border-bottom-width:1px;\"><\/div><\/div><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-text fusion-text-5\"><p> <strong><b>Method 4: Push API \u2013 Via Senitron's Hand-Held RFID Scanner<\/b><\/strong> <\/p>\n<\/div><div class=\"accordian fusion-accordian\" style=\"--awb-border-size:1px;--awb-icon-size:16px;--awb-content-font-size:16px;--awb-icon-alignment:left;--awb-hover-color:#f9f9fb;--awb-border-color:#e2e2e2;--awb-background-color:#ffffff;--awb-divider-color:#e2e2e2;--awb-divider-hover-color:#e2e2e2;--awb-icon-color:#ffffff;--awb-title-color:#212934;--awb-content-color:#4a4e57;--awb-icon-box-color:#212934;--awb-toggle-hover-accent-color:#65bc7b;--awb-title-font-family:&quot;Open Sans&quot;;--awb-title-font-weight:400;--awb-title-font-style:normal;--awb-content-font-family:&quot;Open Sans&quot;;--awb-content-font-style:normal;--awb-content-font-weight:400;\"><div class=\"panel-group fusion-toggle-icon-boxed\" id=\"accordion-723-4\"><div class=\"fusion-panel panel-default panel-6a545a50c282af4a5 fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_6a545a50c282af4a5\"><a aria-expanded=\"false\" aria-controls=\"6a545a50c282af4a5\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-4\" data-target=\"#6a545a50c282af4a5\" href=\"#6a545a50c282af4a5\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Brief Summary<\/span><\/a><\/h4><\/div><div id=\"6a545a50c282af4a5\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_6a545a50c282af4a5\"><div class=\"panel-body toggle-content fusion-clearfix\"> (new pending feature - to be released Summer 2020) Any POS app or external app,can get reads directly from the Senitron Handheld RFID scanner. The Hand-scanner can sit in its cradle or be picked up, by personnel, to scan items directly into the POS. Technical Details: The external software\/POS can send an API message to the handheld middle-ware service running on the Windows based computer, to activate RFID reading on the hand-held, and to get the reads back to POS sales UI. Once committed on the POS, it must commit back directly to Senitron cloud API end-point. <\/div><\/div><\/div><\/div><\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-6 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-5 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy\"><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-separator fusion-full-width-sep\" style=\"margin-left: auto;margin-right: auto;width:100%;\"><div class=\"fusion-separator-border sep-double sep-solid\" style=\"--awb-height:20px;--awb-amount:20px;border-color:#e2e2e2;border-top-width:1px;border-bottom-width:1px;\"><\/div><\/div><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-text fusion-text-6\"><p> <strong><b>Method 5: Commit Sales \/ Returns to Cloud-Endpoint <\/b><\/strong> <\/p>\n<\/div><div class=\"accordian fusion-accordian\" style=\"--awb-border-size:1px;--awb-icon-size:16px;--awb-content-font-size:16px;--awb-icon-alignment:left;--awb-hover-color:#f9f9fb;--awb-border-color:#e2e2e2;--awb-background-color:#ffffff;--awb-divider-color:#e2e2e2;--awb-divider-hover-color:#e2e2e2;--awb-icon-color:#ffffff;--awb-title-color:#212934;--awb-content-color:#4a4e57;--awb-icon-box-color:#212934;--awb-toggle-hover-accent-color:#65bc7b;--awb-title-font-family:&quot;Open Sans&quot;;--awb-title-font-weight:400;--awb-title-font-style:normal;--awb-content-font-family:&quot;Open Sans&quot;;--awb-content-font-style:normal;--awb-content-font-weight:400;\"><div class=\"panel-group fusion-toggle-icon-boxed\" id=\"accordion-723-5\"><div class=\"fusion-panel panel-default panel-b092261797ea5e4bb fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_b092261797ea5e4bb\"><a aria-expanded=\"false\" aria-controls=\"b092261797ea5e4bb\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-5\" data-target=\"#b092261797ea5e4bb\" href=\"#b092261797ea5e4bb\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Brief Summary<\/span><\/a><\/h4><\/div><div id=\"b092261797ea5e4bb\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_b092261797ea5e4bb\"><div class=\"panel-body toggle-content fusion-clearfix\">\n<p>Once any external system, uses any one of the mentioned methods to read RFID data, once the transaction is completed the external system can send the data to Senitron cloud, mark those items are sold (aka removed from inventory) or returned (added back into the inventory)\u00a0 Note: depending on the method, this process may also be handled elsewhere in the other processes.\u00a0 (f0r example client that use the POS assistant in conjunction with the CDM. POS Assistant will commit back to the CDM, and the CDM will commit back the cloud automatically)<\/p>\n<p><strong>Commit Sales \/ Return | Endpoint<\/strong><\/p>\n<p>METHOD: POST<\/p>\n<p>URL: {tenant}\/{location}\/api\/v1\/sale?key={api_key}<br \/>\nBODY: JSON Object containing the transaction information<\/p>\n<p>RESPONSE:<br \/>\n200 -&gt; OK<br \/>\n404 -&gt; Error, reason included in the response body<\/p>\n<p>To send a sale transaction, make a POST request to the sale endpoint for the destination tenant \/ location. And attach in the body<br \/>\nof the request the raw JSON containing the transaction data.<\/p>\n<p>The name field is how Senitron recognizes the type of transaction. Thus send in the name field Sale, or Return<\/p>\n<p>POST<br \/>\n<span style=\"color: #3366ff;\">https:\/\/app.senitron.net\/{tenant}\/{location_number}\/api\/v1\/sale?key={key}<\/span><\/p>\n<p>BODY<br \/>\n{<br \/>\n\"Name\": \"Sale\",<br \/>\n\"Currency\": \"USD\",<br \/>\n\"Location\": \"001\",<br \/>\n\"TenantKey\": \"4\",<br \/>\n\"Total\": \"0.00\",<br \/>\n\"Reference4\": \"10\",<br \/>\n\"DocumentId\": \"\",<br \/>\n\"Id\": \"1\",<br \/>\n\"Date\": \"2018-10-24 01:24:06\",<br \/>\n\"Count\": 5,<br \/>\n\"TransactionMode\": \"Sale\",<br \/>\n\"TransactionDetails\": [<br \/>\n{<br \/>\n\"Attr1\": \"\",<br \/>\n\"Attr2\": \"\",<br \/>\n\"ProductDesc\": \"\",<br \/>\n\"ProductId\": \"122454201\",\"UnitPrice\": \"\",<br \/>\n\"SalePrice\": \"\",<br \/>\n\"EpcId\": \"307510BBD3202E4000000054\",<br \/>\n\"ItemNo\": \"122454201\"<br \/>\n}<br \/>\n]\n}<\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-7 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-6 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy\"><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-separator fusion-full-width-sep\" style=\"margin-left: auto;margin-right: auto;width:100%;\"><div class=\"fusion-separator-border sep-double sep-solid\" style=\"--awb-height:20px;--awb-amount:20px;border-color:#e2e2e2;border-top-width:1px;border-bottom-width:1px;\"><\/div><\/div><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-text fusion-text-7\"><p><strong><b>Method 5 - New: Transaction General API \/ Push Sales Orders to Cloud-Endpoint <\/b><\/strong><\/p>\n<\/div><div class=\"accordian fusion-accordian\" style=\"--awb-border-size:1px;--awb-icon-size:16px;--awb-content-font-size:16px;--awb-icon-alignment:left;--awb-hover-color:#f9f9fb;--awb-border-color:#e2e2e2;--awb-background-color:#ffffff;--awb-divider-color:#e2e2e2;--awb-divider-hover-color:#e2e2e2;--awb-icon-color:#ffffff;--awb-title-color:#212934;--awb-content-color:#4a4e57;--awb-icon-box-color:#212934;--awb-toggle-hover-accent-color:#65bc7b;--awb-title-font-family:&quot;Open Sans&quot;;--awb-title-font-weight:400;--awb-title-font-style:normal;--awb-title-line-height:1.36;--awb-content-font-family:&quot;Open Sans&quot;;--awb-content-font-style:normal;--awb-content-font-weight:400;\"><div class=\"panel-group fusion-toggle-icon-boxed\" id=\"accordion-723-6\"><div class=\"fusion-panel panel-default panel-048ae6ac376c80b64 fusion-toggle-has-divider\" style=\"--awb-title-color:#212934;\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_048ae6ac376c80b64\"><a aria-expanded=\"false\" aria-controls=\"048ae6ac376c80b64\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-6\" data-target=\"#048ae6ac376c80b64\" href=\"#048ae6ac376c80b64\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Brief Summary<\/span><\/a><\/h4><\/div><div id=\"048ae6ac376c80b64\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_048ae6ac376c80b64\"><div class=\"panel-body toggle-content fusion-clearfix\">\n<p>Once any external system, uses any one of the mentioned methods to read RFID data, once the transaction is completed the external system can send the data to Senitron cloud, mark those items are sold (aka removed from inventory) or returned (added back into the inventory)\u00a0 Note: depending on the method, this process may also be handled elsewhere in the other processes.\u00a0 (f0r example client that use the POS assistant in conjunction with the CDM. POS Assistant will commit back to the CDM, and the CDM will commit back the cloud automatically)<\/p>\n<p><strong>Push Sales Orders | Endpoint<\/strong><\/p>\n<p><span class=\"redtextcolor\">Service Name<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span class=\"textindentlevel1\">Push sales orders to Senitron<\/span><br \/>\n<span class=\"redtextcolor\">Service Method<\/span> \u00a0\u00a0\u00a0 <span class=\"textindentlevel1\">POST<\/span><br \/>\n<span class=\"redtextcolor\">Service URL<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span class=\"textindentlevel1\">\/<i><<\/i>tenant-code<i>><\/i>\/<i><<\/i>location<i>><\/i>\/api\/v1\/sales<\/span><\/p>\n<p><span class=\"redtextcolor\">Request Parameters<\/span><br \/>\n<span class=\"greentextcolor\">api_key <\/span>= <<span class=\"cyantextcolor\">api_key<\/span>><\/p>\n<p><span class=\"redtextcolor\">Request Header Fields<\/span><br \/>\n<span class=\"greentextcolor\">Content-Type<\/span> = <span class=\"cyantextcolor\">application\/json<\/span><\/p>\n<p><span class=\"darkbluetextcolor\">Request Data<\/span><br \/>\n{<br \/>\n<span class=\"textindentlevel1\">\"<span class=\"greentextcolor\">transaction_type<\/span>\": \"<span class=\"cyantextcolor\">Sale<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">transaction_date<\/span>\": \"<span class=\"cyantextcolor\">11\/27\/2024 01:45 PM<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">transaction_number<\/span>\": \"<span class=\"cyantextcolor\">45001<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">title<\/span>\": \"<span class=\"cyantextcolor\">SO Test #45001<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">customer<\/span>\": \"\",<br \/>\n\"<span class=\"greentextcolor\">reference_number<\/span>\": \"\",<br \/>\n\"<span class=\"greentextcolor\">document_number<\/span>\": \"\",<br \/>\n\"<span class=\"greentextcolor\">user<\/span>\": \"<span class=\"cyantextcolor\">api@senitron.net<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">note<\/span>\": \"\",<br \/>\n\"<span class=\"greentextcolor\">zone<\/span>\": \"<span class=\"cyantextcolor\">Inside Zone A<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">catalog_update<\/span>\": <span class=\"cyantextcolor\">false<\/span>,<br \/>\n\"<span class=\"greentextcolor\">inventory_update<\/span>\": <span class=\"cyantextcolor\">false<\/span>,<br \/>\n\"<span class=\"greentextcolor\">items<\/span>\": [<\/span><br \/>\n<span class=\"textindentlevel2\">{<\/span><br \/>\n<span class=\"textindentlevel3\">\"<span class=\"greentextcolor\">item_number<\/span>\": \"<span class=\"cyantextcolor\">210000000062<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">qty<\/span>\": <span class=\"cyantextcolor\">10<\/span><\/span><br \/>\n<span class=\"textindentlevel2\">},<br \/>\n{<\/span><br \/>\n<span class=\"textindentlevel3\">\"<span class=\"greentextcolor\">item_number<\/span>\": \"<span class=\"cyantextcolor\">210000000040<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">qty<\/span>\": <span class=\"cyantextcolor\">20<\/span><\/span><br \/>\n<span class=\"textindentlevel2\">}<\/span><br \/>\n<span class=\"textindentlevel1\">],<br \/>\n\"<span class=\"greentextcolor\">assets<\/span>\": [<\/span><br \/>\n<span class=\"textindentlevel2\">{<\/span><br \/>\n<span class=\"textindentlevel3\">\"<span class=\"greentextcolor\">epc<\/span>\": \"<span class=\"cyantextcolor\">C000C30E4F9B43E0000004EA<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">serial_number<\/span>\": \"<span class=\"cyantextcolor\">1258<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">item_number<\/span>\": \"<span class=\"cyantextcolor\">210000000062<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">sku<\/span>\": \"\",<br \/>\n\"<span class=\"greentextcolor\">upc<\/span>\": <span class=\"cyantextcolor\">3252355<\/span>,<br \/>\n\"<span class=\"greentextcolor\">alu<\/span>\": \"\",<br \/>\n\"<span class=\"greentextcolor\">description<\/span>\": \"<span class=\"cyantextcolor\">FOOT JOY M OUTER-LS 215 - L -<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">price<\/span>\": <span class=\"cyantextcolor\">45.00<\/span>,<br \/>\n\"<span class=\"greentextcolor\">retail_price<\/span>\": <span class=\"cyantextcolor\">59.00 <\/span>,<br \/>\n\"<span class=\"greentextcolor\">msrp<\/span>\": <span class=\"cyantextcolor\">57.00<\/span>,<br \/>\n\"<span class=\"greentextcolor\">qty<\/span>\": <span class=\"cyantextcolor\">1<\/span><\/span><br \/>\n<span class=\"textindentlevel2\">},<br \/>\n{<\/span><br \/>\n<span class=\"textindentlevel3\">\"<span class=\"greentextcolor\">epc<\/span>\": \"<span class=\"cyantextcolor\">C000C30E4F9B4280000004E2<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">serial_number<\/span>\": \"<span class=\"cyantextcolor\">1250<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">item_number<\/span>\": \"<span class=\"cyantextcolor\">210000000040<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">sku<\/span>\": \"\",<br \/>\n\"<span class=\"greentextcolor\">upc<\/span>\": <span class=\"cyantextcolor\">3252355<\/span>,<br \/>\n\"<span class=\"greentextcolor\">alu<\/span>\": \"\",<br \/>\n\"<span class=\"greentextcolor\">description<\/span>\": \"<span class=\"cyantextcolor\">CUTTER BUCK M OUTER_VEST 105 - XXL -<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">price<\/span>\": <span class=\"cyantextcolor\">78.00<\/span>,<br \/>\n\"<span class=\"greentextcolor\">retail_price<\/span>\": <span class=\"cyantextcolor\">83.59 <\/span>,<br \/>\n\"<span class=\"greentextcolor\">msrp<\/span>\": <span class=\"cyantextcolor\">81.59<\/span>,<br \/>\n\"<span class=\"greentextcolor\">qty<\/span>\": <span class=\"cyantextcolor\">5<\/span><\/span><br \/>\n<span class=\"textindentlevel2\">}<\/span><br \/>\n<span class=\"textindentlevel1\">]<\/span><br \/>\n}<\/p>\n<p><span class=\"darkbluetextcolor\">Response Data<\/span><br \/>\n<span class=\"greentextcolor\">Status Code = 200<\/span><br \/>\n{<br \/>\n<span class=\"textindentlevel1\">\"<span class=\"greentextcolor\">message<\/span>\": \"<span class=\"cyantextcolor\">Sales order information has been received and will be saved in the cloud<\/span>\"<br \/>\n<\/span><br \/>\n}<\/p>\n<p><span class=\"darkbluetextcolor\">Response (Error)<\/span><br \/>\n<span class=\"greentextcolor\">Status Code <> 200<\/span><br \/>\n{<br \/>\n<span class=\"textindentlevel1\">\"<span class=\"greentextcolor\">error<\/span>\": {<\/span><br \/>\n<span class=\"textindentlevel2\">\"<span class=\"greentextcolor\">type<\/span>\": \"<span class=\"cyantextcolor\">LOCATION_NOT_FOUND<\/span>\",<br \/>\n\"<span class=\"greentextcolor\">message<\/span>\": \"<span class=\"cyantextcolor\">The location #001 not found<\/span>\"<\/span><br \/>\n<span class=\"textindentlevel1\">}<\/span><br \/>\n}<\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-8 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-7 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy\"><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-separator fusion-full-width-sep\" style=\"margin-left: auto;margin-right: auto;width:100%;\"><div class=\"fusion-separator-border sep-double sep-solid\" style=\"--awb-height:20px;--awb-amount:20px;border-color:#e2e2e2;border-top-width:1px;border-bottom-width:1px;\"><\/div><\/div><div class=\"fusion-sep-clear\"><\/div><div class=\"fusion-text fusion-text-8\"><p> <span style=\"color: #000000;\"><strong><b>Method 6: Commit Sales \/ Returns to Cloud-Endpoint (External Software)<\/b><\/strong><\/span> <\/p>\n<\/div><div class=\"accordian fusion-accordian\" style=\"--awb-border-size:1px;--awb-icon-size:16px;--awb-content-font-size:16px;--awb-icon-alignment:left;--awb-hover-color:#f9f9fb;--awb-border-color:#e2e2e2;--awb-background-color:#ffffff;--awb-divider-color:#e2e2e2;--awb-divider-hover-color:#e2e2e2;--awb-icon-color:#ffffff;--awb-title-color:#212934;--awb-content-color:#4a4e57;--awb-icon-box-color:#212934;--awb-toggle-hover-accent-color:#65bc7b;--awb-title-font-family:&quot;Open Sans&quot;;--awb-title-font-weight:400;--awb-title-font-style:normal;--awb-content-font-family:&quot;Open Sans&quot;;--awb-content-font-style:normal;--awb-content-font-weight:400;\"><div class=\"panel-group fusion-toggle-icon-boxed\" id=\"accordion-723-7\"><div class=\"fusion-panel panel-default panel-86d94803a44173304 fusion-toggle-has-divider\"><div class=\"panel-heading\"><h4 class=\"panel-title toggle\" id=\"toggle_86d94803a44173304\"><a aria-expanded=\"false\" aria-controls=\"86d94803a44173304\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#accordion-723-7\" data-target=\"#86d94803a44173304\" href=\"#86d94803a44173304\"><span class=\"fusion-toggle-icon-wrapper\" aria-hidden=\"true\"><i class=\"fa-fusion-box active-icon awb-icon-minus\" aria-hidden=\"true\"><\/i><i class=\"fa-fusion-box inactive-icon awb-icon-plus\" aria-hidden=\"true\"><\/i><\/span><span class=\"fusion-toggle-heading\">Brief Summary<\/span><\/a><\/h4><\/div><div id=\"86d94803a44173304\" class=\"panel-collapse collapse \" aria-labelledby=\"toggle_86d94803a44173304\"><div class=\"panel-body toggle-content fusion-clearfix\"> Posting to this API will update or create transaction records with the provided data. Send a POST request with a JSON body like in the example to update the record. Endpoint URL: <a href=\"https:\/\/app.senitron.net\/&lt;tenant_name&gt;\/&lt;location_no&gt;\/api\/v1\/transactions\/update?key=&lt;client_api_key&gt;\">https:\/\/app.senitron.net\/\/\/api\/v1\/transactions\/update?key=i39sjfu348957ndjk<\/a> I.e.: <a href=\"https:\/\/app.senitron.net\/democ10\/001\/api\/v1\/transactions\/update?key=4882lks09390sjeok99\">https:\/\/app.senitron.net\/democ10\/001\/api\/v1\/transactions\/update?key=4882lks09390sjeok99<\/a> The request will respond with status 200 on success, and 400 on error, or 401 on unauthorized request. Required fields marked as such in the example below must be present on the JSON request. Optional fields can be omitted but must have a value if they are present at all.<\/p>\n<pre>Request body:\r\n{\r\n  \"document_id\": \"183-642958\",           \/\/ (REQUIRED) -&gt; Ticket No \/ Transaction ID\r\n  \"zone\":        \"54, Sales Floor\",      \/\/ (OPTIONAL) -&gt; Audit location,\r\n  \"user\":        \"John Doe\",             \/\/ (OPTIONAL) -&gt; User name\r\n  \"user_email\":  \"john.doe@test.com\",    \/\/ (OPTIONAL) -&gt; User email\r\n  \"comment\":     \"Reason \/ notes\",       \/\/ (OPTIONAL) -&gt; Reason \/ notes memo from the audit\r\n  \"reference\":   \"6000\",                 \/\/ (OPTIONAL) -&gt; Misc. reference attached on transaction recorded\r\n  \"count\":       2,                      \/\/ (REQUIRED) -&gt; Count of items in transaction\r\n  \"total\":       \"25.00\",                \/\/ (OPTIONAL) -&gt; Total amount of sale transaction\r\n  \"currency\":    \"USD\",                  \/\/ (OPTIONAL) -&gt; Transaction currency\r\n  \"date\":        \"2020-05-14 11:51:55\",  \/\/ (OPTIONAL) -&gt; Transaction date &amp; time\r\n  \"transaction_details\": [\r\n    {\r\n      \"epc\":         \"3074D89E04D99E7503C1A452\",   \/\/ (OPTIONAL) -&gt; RFID Tag EPC\r\n      \"serial\":      \"8309\",                       \/\/ (OPTIONAL) -&gt; Serial\r\n      \"product_id\":  \"1271417\",                    \/\/ (REQUIRED) -&gt; Catalog Product ID \/ Item Number\r\n      \"count\":       2,                            \/\/ (REQUIRED) -&gt; Product Qty\r\n      \"upc\":         \"1271417\",                    \/\/ (OPTIONAL) -&gt; UPC\r\n      \"description\": \"Shimmer Lettermen Hood\",     \/\/ (OPTIONAL) -&gt; Catalog Item description\r\n      \"price\":       \"19.00\",                      \/\/ (OPTIONAL) -&gt; Catalog Item price\r\n      \"comment\":     \"Reason \/ notes\"              \/\/ (OPTIONAL) -&gt; Item notes\r\n    },\r\n    {\r\n      \"epc\":         \"3074D89E05372DF5038345AA\",   \/\/ (OPTIONAL) -&gt; RFID Tag EPC\r\n      \"serial\":      \"8311\",                       \/\/ (OPTIONAL) -&gt; Serial\r\n      \"product_id\":  \"1367223\",                    \/\/ (REQUIRED) -&gt; Catalog Product ID \/ Item Number\r\n      \"count\":       1,                            \/\/ (REQUIRED) -&gt; Product Qty\r\n      \"upc\":         \"1271417\",                    \/\/ (OPTIONAL) -&gt; UPC\r\n      \"description\": \"Classic Lettermen Tee\",      \/\/ (OPTIONAL) -&gt; Catalog Item description\r\n      \"price\":       \"6.00\",                       \/\/ (OPTIONAL) -&gt; Catalog Item price\r\n      \"comment\":     \"Reason \/ notes\"              \/\/ (OPTIONAL) -&gt; Item notes\r\n    }\r\n  ]\r\n}\r\n<\/pre>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"side-navigation.php","meta":{"footnotes":""},"class_list":["post-723","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/senitron.net\/developers\/wp-json\/wp\/v2\/pages\/723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/senitron.net\/developers\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/senitron.net\/developers\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/senitron.net\/developers\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/senitron.net\/developers\/wp-json\/wp\/v2\/comments?post=723"}],"version-history":[{"count":9,"href":"https:\/\/senitron.net\/developers\/wp-json\/wp\/v2\/pages\/723\/revisions"}],"predecessor-version":[{"id":2063,"href":"https:\/\/senitron.net\/developers\/wp-json\/wp\/v2\/pages\/723\/revisions\/2063"}],"wp:attachment":[{"href":"https:\/\/senitron.net\/developers\/wp-json\/wp\/v2\/media?parent=723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}