{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"ffa9e954-f51d-4266-99c6-c8e1b1bf48de","name":"UIC MQTT Client APIs","description":"# Introduction\n\nUIC MQTT Client APIs serve as the central mechanism for communication between the MQTT Client and the UPE . They are designed to reliably deliver cloud-originated requests through the UIC Agent to the MQTT Client which finally forwards these requests to the UPE for execution. This process ensures that commands initiated at the cloud level are accurately translated into device-level actions. The APIs form a critical component of UIC’s next-generation cloud architecture enabling scalable and efficient remote control of UIC terminals. By standardizing the communication protocol, the APIs allow UIC developers to achieve consistent behavior across different terminal types and deployment environments.\n\n# Targeted Platforms\n\nThe primary targeted platforms for this release are UIC Linux-based products. While Android terminals are also supported, they may require minor adjustments due to differences in system configuration. These adjustments will not affect the overall API behavior but should be considered during integration testing.\n\n# System Diagram\n\nThe system architecture is designed to ensure reliable communication between cloud services and UIC terminals. The UIC-CONNECT Cloud initiates requests which are first handled by the UIC Agent. From there, the requests are delivered to the UIC terminal via AWS IoT Core. The MQTT Client plays an essential role by forwarding these requests to the UPE through a configurable TCP localhost port. Once executed, results are returned to UIC-CONNECT (may be to UIC Webhook) service back to the customer servers.\n\n<img src=\"https://content.pstmn.io/947e20e7-d4cd-41e3-9d5a-01955ede0f09/aW1hZ2UucG5n\" alt=\"System Diagram\" width=\"589\" height=\"340\">\n\nThe MQTT Client API mainly address (1) and (2) in above system diagram.\n\n<img src=\"https://content.pstmn.io/89a0b5d0-aa8d-48c2-b627-4ee0f113e4d6/TVFUVC1BUElzLnBuZw==\">\n\n# General Notes\n\n- All commands in this document follow the JSON schema shown in examples.\n    \n- The `requestId` must be unique per request; UUID format is recommended.\n    \n- The `timestamp` must use ISO-8601 UTC format (e.g., 2025-01-07T14:05:30Z).\n    \n- If `ScheduleTime` is not provided, the client MUST execute the command immediately.\n    \n- The `callUrl` parameter is mandatory unless otherwise specified, and should always be HTTPS.\n    \n\n# Error Handling\n\n- UPE should return HTTP/200 with the empty response for the command received. Otherwise, it will be HTTP/400\n    \n- Clients should always include `requestId` in error responses to allow traceability.\n    \n\n# Security Considerations\n\n- No security consideration in API requests and responses since it is in system communication.\n    \n- No signature or token is required.\n    \n- Sensitive data, such as transaction details, must not be logged in plaintext.\n    \n\n# MQTT Client Permissions and Roles\n\nThe MQTT Client must be granted the same permission level as the System Manager to ensure smooth operation at the system level. The application is packaged within the RFS and placed under the system folder that it can be updated from UIC TMS in the future. MQTT Client is launched by the system manager to ensure that it inherits system-level privileges and can reliably execute cloud-delivered commands without user intervention.\n\n# Remote Commands\n\nThe following remote commands define the supported operations that can be initiated from the cloud. Each command is represented by a JSON object and includes a requestId, timestamp, and optional parameters. Commands that are shown with strikethrough are reserved for future versions and should not be implemented at this stage. The 'Call Cloud' column indicates whether the command is expected to return the result to the cloud.\n\n<img src=\"https://content.pstmn.io/0e0e0905-a6b2-46c1-99d0-d8fa1e712168/TVFUVCB0YWJsZS5wbmc=\">\n\n# Changelog\n\n- 2025-11-20T09:00:00Z: Refreshed external images for System Diagram and Remote Commands to ensure latest visuals are rendered consistently across spec and collection. Rationale: align with recent asset updates and prevent stale caches.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"48004383","team":9796596,"collectionId":"ffa9e954-f51d-4266-99c6-c8e1b1bf48de","publishedId":"2sBXVZouMm","public":true,"publicUrl":"https://mqtt-api.uic-connect.com","privateUrl":"https://go.postman.co/documentation/48004383-ffa9e954-f51d-4266-99c6-c8e1b1bf48de","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"4646FF"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/8a85872f-0a8d-44f5-a353-3acfdb4c3f29/VUlDLWxvZ28ucG5n","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"4646FF"}},{"name":"light","logo":"https://content.pstmn.io/8a85872f-0a8d-44f5-a353-3acfdb4c3f29/VUlDLWxvZ28ucG5n","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"4646FF"}}]}},"version":"8.10.1","publishDate":"2025-12-25T22:56:36.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/8a85872f-0a8d-44f5-a353-3acfdb4c3f29/VUlDLWxvZ28ucG5n","logoDark":"https://content.pstmn.io/8a85872f-0a8d-44f5-a353-3acfdb4c3f29/VUlDLWxvZ28ucG5n"}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/847d00b84c6785c057026030be3f848ce143461f49629597c9ae692aaf03b57c","favicon":"https://uic-connect.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://mqtt-api.uic-connect.com/view/metadata/2sBXVZouMm"}