{"info":{"_postman_id":"c94ef91e-8dab-418a-a9de-b7732ba885b5","name":"RCCInterfaceApiTankMonitoring","description":"<html><head></head><body><p>The RCC Interface Tank Monitor API is a secure, cloud-hosted RESTful web service designed to receive, validate, and store real-time propane tank readings from external monitoring devices. It plays a critical role in enabling automated delivery scheduling, operational analytics, and system alerts based on tank conditions.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"21174263","collectionId":"c94ef91e-8dab-418a-a9de-b7732ba885b5","publishedId":"2sAYBd88du","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-12-09T17:09:01.000Z"},"item":[{"name":"Tank Monitor","item":[{"name":"AddReadings","event":[{"listen":"test","script":{"id":"dec17692-f1c0-4fee-ac50-a0404649ad45","exec":["pm.test(\"Response status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","\r","pm.test(\"Response has the required fields\", function () {\r","    const responseData = pm.response.json();\r","    \r","    pm.expect(responseData).to.be.an('object');\r","    pm.expect(responseData).to.have.property('status').that.is.a('string');\r","    pm.expect(responseData).to.have.property('message').that.is.a('string');\r","    pm.expect(responseData).to.have.property('ReadingsWithWarnings');\r","    pm.expect(responseData).to.have.property('Result');\r","    pm.expect(responseData).to.have.property('ErrorCode');\r","    pm.expect(responseData).to.have.property('ErrorMessage');\r","});\r","\r","\r","pm.test(\"Response message is a non-empty string\", function () {\r","    const responseData = pm.response.json();\r","    \r","    pm.expect(responseData.message).to.be.a('string').and.to.have.lengthOf.at.least(1, \"Response message should not be empty\");\r","});\r","\r","\r","pm.test(\"Validate the schema of the response body\", function () {\r","    const responseData = pm.response.json();\r","    \r","    pm.expect(responseData).to.be.an('object');\r","    pm.expect(responseData).to.have.property('status').that.is.a('string');\r","    pm.expect(responseData).to.have.property('message').that.is.a('string');\r","});\r","\r","\r","pm.test(\"Response time is within acceptable range\", function () {\r","    pm.expect(pm.response.responseTime).to.be.below(400);\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"8f4eac0c-89e8-4ca1-8c93-0610fdd3a890","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"[\r\n    {\r\n        \"TankMonitorId\": \"RS987654\",\r\n        \"TankSerialNumber\": \"\",\r\n        \"Level\": 40,\r\n        \"LastRead\": \"2025-08-09\",\r\n        \"BatteryLevel\": \"97\",\r\n        \"EstimatedRunOutDate\": \"2025-11-15\",\r\n        \"IsActive\": true,\r\n        \"Temperature\": 54,\r\n        \"SignalStrength\": 88.0\r\n    }\r\n]","options":{"raw":{"language":"json"}}},"url":"{{interfaceBaseUri}}/Interface/TankMonitor/AddReadings","description":"<h3 id=\"add-tank-monitoring-data\">Add Tank Monitoring Data</h3>\n<p>This endpoint allows you to add tank monitoring data for tanks. This endpoint expects <strong>a JSON array of tank monitor reading objects</strong>. Even when submitting a single reading, the request body <strong>must be an array</strong> containing one object.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<ul>\n<li><p><strong>DataLogical</strong> (string): The database to store the customer. Contact RCC if planning to use.</p>\n<ul>\n<li>Required: False</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p><code>TankMonitorId</code> (string): The ID of the tank monitor.</p>\n<ul>\n<li>Required: True</li>\n</ul>\n</li>\n<li><p><code>TankSerialNumber</code> (string): The serial number of the tank.</p>\n<ul>\n<li>Required: False</li>\n</ul>\n</li>\n<li><p><code>Level</code> (number): The current level of the tank.</p>\n<ul>\n<li>Required: True</li>\n</ul>\n</li>\n<li><p><code>LastRead</code> (string): The date of the last reading.</p>\n<ul>\n<li><p>Required: True</p>\n</li>\n<li><p>Format: yyyy-MM-dd</p>\n</li>\n</ul>\n</li>\n<li><p><code>BatteryLevel</code> (string): The battery level of the tank monitor.</p>\n<ul>\n<li>Required: False</li>\n</ul>\n</li>\n<li><p><code>EstimatedRunOutDate</code> (string): The estimated run out date of the tank.</p>\n<ul>\n<li><p>Required: False</p>\n</li>\n<li><p>Format: yyyy-MM-dd</p>\n</li>\n</ul>\n</li>\n<li><p><code>IsActive</code> (boolean): Indicates if the tank monitor is active.</p>\n<ul>\n<li>Required: False</li>\n</ul>\n</li>\n<li><p><code>Temperature</code> (number): The temperature around the tank.</p>\n<ul>\n<li>Required: False</li>\n</ul>\n</li>\n<li><p><code>SignalStrength</code> (number): The signal strength of the tank monitor.</p>\n<ul>\n<li>Required: False</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object conforming to the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"status\": {\n      \"type\": \"string\"\n    },\n    \"message\": {\n      \"type\": \"string\"\n    }\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["Interface","TankMonitor","AddReadings"],"host":["{{interfaceBaseUri}}"],"query":[],"variable":[]}},"response":[{"id":"cd78f5a4-4fc6-48ca-a1cc-7ba6ce962a58","name":"AddReadings","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"[\r\n    {\r\n        \"TankMonitorId\": \"RS9876\",\r\n        \"TankSerialNumber\": \"6-1494\",\r\n        \"Level\": 43,\r\n        \"LastRead\": \"2024-05-06\",\r\n        \"BatteryLevel\": \"97\",\r\n        \"EstimatedRunOutDate\": \"2024-11-15\",\r\n        \"IsActive\": true,\r\n        \"Temperature\": 54,\r\n        \"SignalStrength\": 88.0\r\n    },\r\n    {\r\n        \"TankMonitorId\": \"FW5483\",\r\n        \"TankSerialNumber\": \"381198\",\r\n        \"Level\": 64,\r\n        \"LastRead\": \"2024-01-27\",\r\n        \"BatteryLevel\": \"97\",\r\n        \"EstimatedRunOutDate\": \"2024-05-30\",\r\n        \"IsActive\": true,\r\n        \"Temperature\": 5.5,\r\n        \"SignalStrength\": 88.0\r\n    }\r\n]","options":{"raw":{"language":"json"}}},"url":"https://apps.rccbi.com//Interface/TankMontoring/Add"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"no-cache"},{"key":"Pragma","value":"no-cache"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Expires","value":"-1"},{"key":"Server","value":"Microsoft-IIS/10.0"},{"key":"X-StackifyID","value":"P2|cf48f34d-1c2f-420e-b81d-d2b20f25a8d8"},{"key":"X-AspNet-Version","value":"4.0.30319"},{"key":"X-SourceFiles","value":"=?UTF-8?B?YzpccmNjZGV2XFJDQ0lfR0lUXFJDQ0kuV2ViQXBpLkludGVyZmFjZVxJbnRlcmZhY2VcVGFua01vbnRvcmluZ1xBZGQ=?="},{"key":"X-Powered-By","value":"ASP.NET"},{"key":"Date","value":"Wed, 09 Oct 2024 14:55:32 GMT"},{"key":"Content-Length","value":"151"}],"cookie":[],"responseTime":null,"body":"{\n    \"Status\": \"Success\",\n    \"Message\": \"All 2 readings were successfully updated.\",\n    \"ReadingsWithWarnings\": [],\n    \"Result\": true,\n    \"ErrorCode\": null,\n    \"ErrorMessage\": null\n}"}],"_postman_id":"8f4eac0c-89e8-4ca1-8c93-0610fdd3a890"},{"name":"Get","id":"6c304507-4f75-4c30-9b7d-dec2fa38f5b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://apps.rccbi.com//Interface/TankMonitor/Get?tankMonitorIdOrTankSerialNo=","description":"<p>This endpoint allows you to get the current tank monitor reading based on the tankMonitorId or tankSerialNo.</p>\n","urlObject":{"path":["Interface","TankMonitor","Get"],"host":["https://apps.rccbi.com/"],"query":[{"key":"tankMonitorIdOrTankSerialNo","value":""}],"variable":[]}},"response":[],"_postman_id":"6c304507-4f75-4c30-9b7d-dec2fa38f5b0"}],"id":"e3bbe854-c34e-4310-8630-959a661a76f1","_postman_id":"e3bbe854-c34e-4310-8630-959a661a76f1","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"c94ef91e-8dab-418a-a9de-b7732ba885b5","id":"c94ef91e-8dab-418a-a9de-b7732ba885b5","name":"RCCInterfaceApiTankMonitoring","type":"collection"}}},{"name":"Login","event":[{"listen":"test","script":{"id":"ea3bb22f-ced1-4068-8d9b-84bbaffec9c7","exec":["var data = pm.response.json();\r","pm.environment.set(\"RCCToken\", data.access_token);\r",""],"type":"text/javascript","packages":{}}}],"id":"bebea889-2022-4bbb-a581-1bddcfd2b8f0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"password","value":"demo","type":"text"},{"key":"username","value":"demo","type":"text"},{"key":"grant_type","value":"password","type":"text"}]},"url":"{{interfaceBaseUri}}/Token","description":"<p>This endpoint is used to obtain an access token by sending a POST request to the specified URL. The request should include the user's credentials and the grant type in the x-www-form-urlencoded format.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><code>password</code> (text): The user's password. Assigned by RCC.</p>\n</li>\n<li><p><code>username</code> (text): The user's username. Assigned by RCC.</p>\n</li>\n<li><p><code>grant_type</code> (text): The type of grant being requested.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will include the access token and other relevant information upon successful authentication.</p>\n","urlObject":{"path":["Token"],"host":["{{interfaceBaseUri}}"],"query":[],"variable":[]}},"response":[{"id":"94f290e8-8c80-43b8-9553-f55b71fae0be","name":"Login","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"password","value":"Demo%1234","type":"text"},{"key":"username","value":"demo","type":"text"},{"key":"grant_type","value":"password","type":"text"}]},"url":"https://apps.rccbi.com//Token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"no-cache"},{"key":"Pragma","value":"no-cache"},{"key":"Content-Type","value":"application/json;charset=UTF-8"},{"key":"Expires","value":"-1"},{"key":"Server","value":"Microsoft-IIS/10.0"},{"key":"Set-Cookie","value":".AspNet.Cookies=6BfnPnjKyutjXyPx3kpsMhZJ61fYXkNJbw_oba7y5P9-Cz3zCvRug0fnShkxPB9b_8Ov457VZRfAz6NO_F3CzjSNvqd4hFEupqvD54IYvhp-2-KpzddUXtYMAvbw1FeK2Eld4r1VsUvBAqQ0C1rrMw8iZNinQgvSbWeMicYDtq3ojyRuVRsWm1YEwAqKanPWdYVgyWdPv5a5vkRZO5mjOFhreUKH6CtBdRMiJp9uA0ItEfJSi7p7JWiVt_XcwZ435yJQKT31qiZLMA38AOFg3PGGdpEz3Y9klQDUwVAAE-QZ13XxpuMqv1WVItuCU5fg7ALIPk-f4TAAIBBw4eGZZoLk17YlciSYIgwNm0G6y8yHPOt1UVIjJqwRlK8f5S1zhp-THvLBnXM75uxsBig5pASyxE-gRbUfDqWGrZ_F-BMN3TQ87dsY3HE1TfeyDx77hkXNU9RG_yiP3HitntqHFRDP0TUsUX_WwoiFCfPapke8FFaXvBd90Ac2YlCxkOwdcIHsLCMWTVJ1ZS2Qp81fREoFrtqDO-p2U2dLcgwvP4jfgzfCBi7FdlAkBTATbSclaBanVZ7n4hPcihu6VjL1RQw-a0UnnGW1Sl1uQQGeD7U; path=/; secure; HttpOnly"},{"key":"X-Powered-By","value":"ASP.NET"},{"key":"Date","value":"Tue, 08 Oct 2024 13:08:52 GMT"},{"key":"Content-Length","value":"784"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"OzajUvfjztDB2qA0iHx2EYcbOT-A1qb5KtvTrI-VbuptKFRo9PQ0SVdy2ACGgMM3gaaX4_XwrVHA4NKvL_lH_-5Za3WdZvWQ_GphoRDD15rX08zIEX-QqTHCpVN200DbRtZq9w6kD8CkXjTdyrORKdA3C2m5jykWx5eUE6I_lTxcnFKFMJDcANZjAPBVfAbyOGiXdbYKo2SZN1LBwuJI9k2RBL8nADMKQc6deeyHZnd96S7ueJRbhUxVfIAzCnMssLjhM4xoQyKkBvg9uIy9ykBoOpOyyrApgXWQ76b8VvNdZLfb4w-dQC_7VoH4IQPwLGz_SKNdAcdJKQ8n__VXmoj32tNr5q3Ma9ghWp_aHpYUAT-rvdZ5AI-yGgt3V016m9o5JlFR8CUZblA-mI6_kYN-IItaVOWO1ofZ7r3kXHOh92GBRlW-c6SQJmyjm5Ye5u3o2C3KYf2Ud_afUavCkQ3OPEu76n-w1OLY9jfd_i6yr80drKftmUxJxSfXdPKLQ3x4YoADGJ22dHV9Czgv4fu80yFr3usQkKRRxUUg3hSLxdDbel3WGGRcA7_3KDRAk80EwBpS1SbMStcmPLx9BAivFC8170XTn3mcb4a8uMA\",\n    \"token_type\": \"bearer\",\n    \"expires_in\": 1209599,\n    \"userName\": \"demo\",\n    \".issued\": \"Tue, 08 Oct 2024 13:08:52 GMT\",\n    \".expires\": \"Tue, 22 Oct 2024 13:08:52 GMT\"\n}"}],"_postman_id":"bebea889-2022-4bbb-a581-1bddcfd2b8f0"}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]}},"event":[{"listen":"prerequest","script":{"id":"1c442174-c7bd-42de-b54d-504e5b23753c","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"9608c92a-bffc-492a-a253-ff21347084e2","type":"text/javascript","exec":[""]}}],"variable":[{"key":"RCCToken","value":""},{"key":"BaseUri","value":"https://apps.rccbi.com/","type":"string"}]}