{"info":{"_postman_id":"9e123942-38d9-48cd-ab9d-6f475613098d","name":"API DOCUMENT","description":"<html><head></head><body><p>Tài liệu dịch vụ do INCOM cung cấp.</p>\n<p>Mọi thắc mắc vui lòng liên hệ trực tiếp với nhân viên kinh doanh hoặc kỹ thuật để được hỗ trợ sớm nhất.</p>\n<p>Mô hình kết nối mẫu:  </p>\n<img src=\"https://content.pstmn.io/ece796a0-f2bf-4f54-b539-a88eb22d71fd/TU/MgiBIScyATkggS0XMgsyBVCBOT8yCzIFJLnBuZw==\"></body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"11220104","collectionId":"9e123942-38d9-48cd-ab9d-6f475613098d","publishedId":"UVXetJnT","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2023-08-30T07:35:05.000Z"},"item":[{"name":"OMNI","item":[{"name":"Basic Auth","item":[{"name":"Send Message OMNI","id":"d16a5e5c-5300-4d16-bdbb-96b0ce69ea8c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXX\",\r\n    \"phonenumber\":\"XXXXXXXXXX\",\r\n    \"routerule\":[\r\n        \"1\",\"2\",\"3\"\r\n    ],\r\n    \"templatecode\":\"XXXXXXX\",\r\n    \"list_param\":{\r\n        \"XXXX\":\"XXXXX\",\r\n        \"YYYY\":\"YYYYY\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniMessage/SendMessage","description":"<p>API dùng để gửi tin OMNI đến số điện thoại</p>\n<ul>\n<li><p><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</p>\n</li>\n<li><p><strong>phonenumber</strong> : số điện thoại nhận tin (Khuyến cáo dạng chuẩn 84)</p>\n</li>\n<li><p><strong>requestId</strong>: Mã định danh do đối tác quy định (0-40 ký tự)</p>\n</li>\n<li><p><strong>routerule</strong> : Rule các kênh sẽ đi theo cơ chế trượt kênh thông minh (kênh đầu tiên nếu gửi thất bại sẽ tự động chuyển kênh thứ 2 gửi, nếu thất bại, tiếp tục chuyển kênh thứ 3). 1: ZNS , 2: Autocall, 3: SMS</p>\n</li>\n<li><p><strong>templatecode</strong> : mã template của phía INCOM cấp khi đăng ký template</p>\n</li>\n<li><p><strong>list_param</strong> : danh sách các biến (tùy thuộc vào template sẽ có danh sách biến khác nhau</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>phonenumber</td>\n<td>string</td>\n</tr>\n<tr>\n<td>requestId</td>\n<td>string</td>\n</tr>\n<tr>\n<td>routerule</td>\n<td>string</td>\n</tr>\n<tr>\n<td>templatecode</td>\n<td>string</td>\n</tr>\n<tr>\n<td>list_param</td>\n<td>object</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"1\",  <br />\"code\": \"Success\",  <br />\"idOmniMess\": \"Chuỗi tiền tố ICOMNI và 30 ký tự\"  <br />}</td>\n<td>Success: INCOM đã nhận  <br />được request gửi tin. Trạng  <br />thái sẽ được update ở API  <br />GetStatus hoặc webhook đã đăng ký với bên INCOM dựa theo  <br />idOmniMess nhận về.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-1\",  <br />\"code\": \"PhoneNumber Wrong Format\"  <br />}</td>\n<td>Số điện thoại nhận không đúng định dạng.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-2\",  <br />\"code\": \"Wrong Format Parameter: xxxxxx\"  <br />}</td>\n<td>Biến xxxxxx sai định dạng</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-3\",  <br />\"code\": \"You have run out of messages\"  <br />}</td>\n<td>Số lần gửi tin Omni đã hết liên hệ kinh doanh để cấp thêm.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-6\",  <br />\"code\": \"Can't find template with templatecode: xxxxxx \"  <br />}</td>\n<td>Không tìm được template có id như yêu cầu</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-8\",  <br />\"code\": \"Can't find any routing for this request\"  <br />}</td>\n<td>Không tìm thấy routerule nào cho template code, liên hệ kỹ thuật để cấu hình lại.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-9\",  <br />\"code\": \"Can't find any information about channel: XXXXX\"  <br />}</td>\n<td>Lỗi Channel XXXXX trong routerule liên hệ kỹ thuật để cấu hình lại.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniMessage","SendMessage"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"d16a5e5c-5300-4d16-bdbb-96b0ce69ea8c"},{"name":"Get Status OMNI","id":"1e1a9938-3e75-4c9f-87c0-a8925548ff09","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"idOmniMess\":\"ICOMNI-XXXXXXXXXXXXXXXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniReport/GetStatusOmni","description":"<p>API dùng để chủ động lấy trạng thái của tin OMNI theo idOmniMess nhận được khi tạo request <strong>Send Message OMNI</strong> thành công</p>\n<ul>\n<li><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</li>\n<li><strong>idOmniMess :</strong> id tin nhắn nhận được khi tạo request <strong>Send Message OMNI</strong></li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>idOmniMess</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"phonenumber\":\"84836106872\", \"list_param\":\"{\"otp\":\"123456\"}\",  <br />\"createdatetime\":\"21/05/2021 14:43:22\",  <br />\"status\":\"FAIL\",  <br />\"channel\":\"XXXX\",  <br />\"templatecode\":\"XXXX\" ,  <br />\"errorCode\":\"XXXX\"  <br />}</td>\n<td>Status gồm các loại:  <br />-FAIL:thất bại  <br />-SUCCESS: thành công  <br />-PROCESSING: đang xử lý  <br />errorCode: tùy thuộc vào kênh gửi sẽ có bảng mã lỗi khác nhau chi tiết tại <a href=\"https://\">https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg</a>  <br />Với các kênh riêng biệt sẽ có thêm trường thông tin cần thiết:  <br />-SMS: mtcount (số lượng tin tính tiền), telcoid (id nhà mạng)  <br />-ZNS:  <br />-Autocall: duration(thời lượng cuộc gọi)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniReport","GetStatusOmni"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"1e1a9938-3e75-4c9f-87c0-a8925548ff09"},{"name":"Get Template OMNI","id":"12dc8124-34a8-4e5d-bd9a-94c074838d7b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXX\",\r\n    \"templateCode\": \"XXXXXXXXXX\",\r\n    \"itemcount\":5,\r\n    \"page\":1\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/TemplateOmni/GetTemplate","description":"<p>API dùng để lấy danh sách template được cấp quyền theo account api đã cấp</p>\n<ul>\n<li><p><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</p>\n</li>\n<li><p><strong>templateCode</strong>: tên template cần tìm kiếm</p>\n</li>\n<li><p><strong>itemcount</strong>: số template muốn lấy.</p>\n</li>\n<li><p><strong>page</strong>: phân trang muốn lấy.</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>templateCode</td>\n<td>string (allow empty)</td>\n</tr>\n<tr>\n<td>itemcount</td>\n<td>int</td>\n</tr>\n<tr>\n<td>page</td>\n<td>int</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"ListTemp\":[  <br />{  <br />\"templateCode\":\"XXXXX\",  <br />\"contentRegex\":\"XXXXX\",  <br />\"contentChannel\":{  <br />\"1\":\"XXXXX\",  <br />\"2\":\"XXXXX\",  <br />\"3\":\"XXXXX\"  <br />},  <br />\"paramsFormat\":{  <br />\"XXXX\":{  <br />\"regex\":\"\\b.{0,30}\\b\",  <br />\"type\":\"normal\"  <br />},  <br />\"YYYYY\":{  <br />\"regex\":\"\\b.{0,100}\\b\",  <br />\"type\":\" normal\"  <br />}  <br />},  <br />\"senderChannel\":{  <br />\"1\":\"XXXXX\",  <br />\"2\":\"XXXXX\",  <br />\"3\":\"XXXXX\"  <br />},  <br />\"timeSwitchChannel\":0  <br />}  <br />],  <br />\"TotalItem\":6,  <br />\"Page\":1  <br />}</td>\n<td><strong>ListTemp</strong>: danh sách template trong phân trang hiện tại.  <br /><strong>TotalItem</strong>: tổng template hiện có.  <br /><strong>Page</strong>: phân trang hiện tại.  <br />**Note: object template sẽ có dạng:  <br />- templateCode: mã template dùng để gọi api  <br />- contentRegex: nội dung template  <br />- contentChannel: nội dung đi theo từng kênh.  <br />- paramsFormat: định dạng biến của template gồm regex và loại biến  <br />- senderChannel: định danh gửi theo từng kênh  <br />- timeSwitchChannel: thời gian giới hạn chuyển kênh khi thất bại</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","TemplateOmni","GetTemplate"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"12dc8124-34a8-4e5d-bd9a-94c074838d7b"},{"name":"UpdateWebhookEndPoint","id":"29333e4b-c526-4cf3-a5cf-615798fda2fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXX\",\r\n    \"password\":\"XXXXXXXX\",\r\n    \"Endpoint\":\"XXXXXXXX\",\r\n    \"Header\":\"XXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniHook/UpdateWebhookEndPoint","description":"<p>API dùng để cập nhật lại link nhận webhook tài khoản api omni</p>\n<ul>\n<li><p><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</p>\n</li>\n<li><p><strong>Endpoint</strong>: đường dẫn link webhook trả dữ liệu.</p>\n</li>\n<li><p><strong>Header</strong>: Header đường dẫn</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Endpoint</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Header</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />Status:\"Success\",  <br />old:{  <br />Endpoint:\"XXXX\",  <br />Header:\"XXXX\"  <br />}  <br />new:{  <br />Endpoint:\"YYYY\"  <br />Header:\"YYYY\"  <br />}  <br />}</td>\n<td>Status: trạng thái sau khi update  <br />+ Success: thành công  <br />+ Fail: thất bại.  <br />Trường hợp Success trả về thêm 2 trường  <br />- old : Gồm Endpoint và Header cũ.  <br />- new: Gồm Endpoint và Header mới update  <br />Trường hợp Fail trả về Desc  <br />Lỗi thất bại</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniHook","UpdateWebhookEndPoint"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"29333e4b-c526-4cf3-a5cf-615798fda2fd"},{"name":"GetRatingResult","id":"97475a2a-3e1d-4d22-927f-b289a590e115","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"TemplateCode\":\"XXXXXX\",\r\n    \"username\":\"XXXXXXX\",\r\n    \"password\":\"YYYYYYYY\",\r\n    \"ItemCount\":\"50\",\r\n    \"Page\":\"1\",\r\n    \"From\":\"2024-09-05\",\r\n    \"To\":\"2024-09-06\"\r\n    \r\n    }","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniReport/GetRatingResult","description":"<p>API Lấy kết quả Template Rating của Zalo</p>\n<h1 id=\"request\">Request:</h1>\n<ul>\n<li><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</li>\n<li><strong>ItemCount</strong>: số template muốn lấy.</li>\n<li><strong>Page</strong>: phân trang muốn lấy.</li>\n<li><strong>From</strong>: ngày bắt đầu.</li>\n<li><strong>To</strong>: ngày kết thúc.</li>\n<li><strong>TemplateCode</strong>: templateCode rating Incom cung cấp.</li>\n</ul>\n<h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"total\": 1,  <br />\"data\": [  <br />{  <br />\"note\": \"Test \",  <br />\"rate\": 4,  <br />\"submitDate\": 1700646353357.0,  <br />\"msgId\": \"4856d456801a1f40460f\",  <br />\"feedbacks\": null,  <br />\"trackingId\": \"ICZNS-aa2f9937665fcc58e23d17a66f2300\",  <br />\"phoneNumber\": \"84932399926\",  <br />\"sentDate\": \"2023-11-22 16:43:35\",  <br />\"idOmniMess\": \"ICOMNI-XXXXXXXXXXXXXXXXXX\",  <br />\"list_param\": {  <br />\"order_date\": \"<strong>*\",  <br />\"customer_name\": \"</strong>*\"  <br />}  <br />}  <br />]  <br />}</td>\n<td><strong>total</strong>: tổng feedback hiện có.  <br /><strong>data</strong>: danh sách các feedback:  <br />- phoneNumber: số điện thoại gửi  <br />- sentDate: ngày gửi  <br />- submitDate: ngày feedback dạng timestamp milisecond  <br />- rate: số sao đánh gía  <br />- note: ghi chú khách hàng nhập vào.  <br />- feedbacks: các option của template khách hàng đã chọn.  <br />-idOmniMess: IdOmniMess đã gửi bằng API SendMessage  <br />-list_param: danh sách biến truyền trong template lúc gửi tin (mỗi tin sẽ có idOmniMess và list_param khác nhau)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniReport","GetRatingResult"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"97475a2a-3e1d-4d22-927f-b289a590e115"}],"id":"bbe2161e-16aa-4cfc-bf67-05d1be09b337","_postman_id":"bbe2161e-16aa-4cfc-bf67-05d1be09b337","description":""},{"name":"Via Token","item":[{"name":"GetAccessToken","id":"408c9fb4-a182-4247-9ac9-a3456ee4e78a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXX\",\r\n    \"password\":\"XXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/Authenticate/GetAccessToken","description":"<p>API để lấy access_token dùng cho xác thực khi gọi các API</p>\n<ul>\n<li><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"access_token\": \"\",  <br />\"refresh_token\": \"\",  <br />\"expires_in\": \"\"  <br />}</td>\n<td>access_token: thông tin access_token dùng để truyển trong header khi gọi các api  <br />refresh_token: thông tin refresh_token dùng để gọi api RefreshAccessToken cấp lại access_token khi hết hạn  <br />expires_in: thời gian hết hạn của token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n<tr>\n<td>400</td>\n<td>This account is already had token</td>\n<td>Account đã cấp token trước đó</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","Authenticate","GetAccessToken"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"408c9fb4-a182-4247-9ac9-a3456ee4e78a"},{"name":"RefreshAccessToken","id":"123718c6-2d86-4a88-9456-d50d8c077728","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"refresh_token","value":"{{refresh_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/Authenticate/RefreshAccessToken","description":"<p>API để lấy access_token dùng cho xác thực khi gọi các API</p>\n<ul>\n<li><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"access_token\": \"\",  <br />\"refresh_token\": \"\",  <br />\"expires_in\": \"\"  <br />}</td>\n<td>access_token: thông tin access_token dùng để truyển trong header khi gọi các api  <br />refresh_token: thông tin refresh_token dùng để gọi api RefreshAccessToken cấp lại access_token khi hết hạn  <br />expires_in: thời gian hết hạn của token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username, password hoặc refresh_token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","Authenticate","RefreshAccessToken"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"123718c6-2d86-4a88-9456-d50d8c077728"},{"name":"Send Message OMNI","id":"96372636-7e53-48ca-b73b-5841a1bde8be","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phonenumber\":\"XXXXXXXXXX\",\r\n    \"routerule\":[\r\n        \"1\",\"2\",\"3\"\r\n    ],\r\n    \"templatecode\":\"XXXXXXX\",\r\n    \"list_param\":{\r\n        \"XXXX\":\"XXXXX\",\r\n        \"YYYY\":\"YYYYY\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniMessage/SendMessage","description":"<p>API dùng để gửi tin OMNI đến số điện thoại</p>\n<ul>\n<li><p><strong>phonenumber</strong> : số điện thoại nhận tin (Khuyến cáo dạng chuẩn 84)</p>\n</li>\n<li><p><strong>routerule</strong> : Rule các kênh sẽ đi theo cơ chế trượt kênh thông minh (kênh đầu tiên nếu gửi thất bại sẽ tự động chuyển kênh thứ 2 gửi, nếu thất bại, tiếp tục chuyển kênh thứ 3). 1: ZNS , 2: Autocall, 3: SMS</p>\n</li>\n<li><p><strong>requestId</strong>: Mã định danh do đối tác quy định (0-40 ký tự)</p>\n</li>\n<li><p><strong>templatecode</strong> : mã template của phía INCOM cấp khi đăng ký template</p>\n</li>\n<li><p><strong>list_param</strong> : danh sách các biến (tùy thuộc vào template sẽ có danh sách biến khác nhau</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phonenumber</td>\n<td>string</td>\n</tr>\n<tr>\n<td>routerule</td>\n<td>string</td>\n</tr>\n<tr>\n<td>requestId</td>\n<td>string</td>\n</tr>\n<tr>\n<td>templatecode</td>\n<td>string</td>\n</tr>\n<tr>\n<td>list_param</td>\n<td>object</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"1\",  <br />\"code\": \"Success\",  <br />\"idOmniMess\": \"Chuỗi tiền tố ICOMNI và 30 ký tự\"  <br />}</td>\n<td>Success: INCOM đã nhận  <br />được request gửi tin. Trạng  <br />thái sẽ được update ở API  <br />GetStatus hoặc webhook đã đăng ký với bên INCOM dựa theo  <br />idOmniMess nhận về.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-1\",  <br />\"code\": \"PhoneNumber Wrong Format\"  <br />}</td>\n<td>Số điện thoại nhận không đúng định dạng.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-2\",  <br />\"code\": \"Wrong Format Parameter: xxxxxx\"  <br />}</td>\n<td>Biến xxxxxx sai định dạng</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-3\",  <br />\"code\": \"You have run out of messages\"  <br />}</td>\n<td>Số lần gửi tin Omni đã hết liên hệ kinh doanh để cấp thêm.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-6\",  <br />\"code\": \"Can't find template with templatecode: xxxxxx \"  <br />}</td>\n<td>Không tìm được template có id như yêu cầu</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-8\",  <br />\"code\": \"Can't find any routing for this request\"  <br />}</td>\n<td>Không tìm thấy routerule nào cho template code, liên hệ kỹ thuật để cấu hình lại.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-9\",  <br />\"code\": \"Can't find any information about channel: XXXXX\"  <br />}</td>\n<td>Lỗi Channel XXXXX trong routerule liên hệ kỹ thuật để cấu hình lại.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniMessage","SendMessage"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"96372636-7e53-48ca-b73b-5841a1bde8be"},{"name":"Get Status OMNI","id":"8f0af682-9c00-47cd-a2db-ce4d90b24531","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"idOmniMess\":\"ICOMNI-XXXXXXXXXXXXXXXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniReport/GetStatusOmni","description":"<p>API dùng để chủ động lấy trạng thái của tin OMNI theo idOmniMess nhận được khi tạo request <strong>Send Message OMNI</strong> thành công</p>\n<ul>\n<li><strong>idOmniMess :</strong> id tin nhắn nhận được khi tạo request <strong>Send Message OMNI</strong></li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","OmniReport","GetStatusOmni"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"8f0af682-9c00-47cd-a2db-ce4d90b24531"},{"name":"Get Template OMNI","id":"f762e8f7-f237-4f7a-b098-0a1ee92c8af1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"templateCode\": \"XXXXXXXXXX\",\r\n    \"itemcount\":5,\r\n    \"page\":1\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/TemplateOmni/GetTemplate","description":"<p>API dùng để lấy danh sách template được cấp quyền theo account api đã cấp</p>\n<ul>\n<li><p><strong>itemcount</strong>: số template muốn lấy.</p>\n</li>\n<li><p><strong>page</strong>: phân trang muốn lấy.</p>\n</li>\n<li><p><strong>templateCode</strong>: tên template cần tìm kiếm</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","TemplateOmni","GetTemplate"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"f762e8f7-f237-4f7a-b098-0a1ee92c8af1"},{"name":"UpdateWebhookEndPoint","id":"85139053-39f9-4949-8621-2b87e799d12e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}"}],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXX\",\r\n    \"password\":\"XXXXXXXX\",\r\n    \"Endpoint\":\"XXXXXXXX\",\r\n    \"Header\":\"XXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniHook/UpdateWebhookEndPoint","description":"<p>API dùng để cập nhật lại link nhận webhook tài khoản api omni</p>\n<ul>\n<li><strong>Endpoint</strong>: đường dẫn link webhook trả dữ liệu.</li>\n<li><strong>Header</strong>: Header đường dẫn</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Endpoint</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Header</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />Status:\"Success\",  <br />old:{  <br />Endpoint:\"XXXX\",  <br />Header:\"XXXX\"  <br />}  <br />new:{  <br />Endpoint:\"YYYY\"  <br />Header:\"YYYY\"  <br />}  <br />}</td>\n<td>Status: trạng thái sau khi update  <br />+ Success: thành công  <br />+ Fail: thất bại.  <br />Trường hợp Success trả về thêm 2 trường  <br />- old : Gồm Endpoint và Header cũ.  <br />- new: Gồm Endpoint và Header mới update  <br />Trường hợp Fail trả về Desc  <br />Lỗi thất bại</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniHook","UpdateWebhookEndPoint"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"85139053-39f9-4949-8621-2b87e799d12e"},{"name":"GetRatingResult","id":"f26a2d07-e040-41ca-b56e-0b509378ba4d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"TemplateCode\":\"IncomRating\",\r\n    \"From\":\"2023-11-01\",\r\n    \"To\":\"2023-11-30\",\r\n    \"Page\":\"1\",\r\n    \"ItemCount\":\"50\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniReport/GetRatingResult","description":"<p>API Lấy kết quả Template Rating của Zalo</p>\n<h1 id=\"request\">Request:</h1>\n<ul>\n<li><p><strong>ItemCount</strong>: số template muốn lấy.</p>\n</li>\n<li><p><strong>Page</strong>: phân trang muốn lấy.</p>\n</li>\n<li><p><strong>From</strong>: ngày bắt đầu.</p>\n</li>\n<li><p><strong>To</strong>: ngày kết thúc.</p>\n</li>\n<li><p><strong>TemplateCode</strong>: templateCode rating Incom cung cấp.</p>\n</li>\n</ul>\n<h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"total\": 1,  <br />\"data\": [  <br />{  <br />\"note\": \"Test \",  <br />\"rate\": 4,  <br />\"submitDate\": 1700646353357.0,  <br />\"msgId\": \"4856d456801a1f40460f\",  <br />\"feedbacks\": null,  <br />\"trackingId\": \"ICZNS-aa2f9937665fcc58e23d17a66f2300\",  <br />\"phoneNumber\": \"84932399926\",  <br />\"sentDate\": \"2023-11-22 16:43:35\",  <br />\"idOmniMess\": \"ICOMNI-XXXXXXXXXXXXXXXXXX\",  <br />\"list_param\": {  <br />\"order_date\": \"<strong>*\",  <br />\"customer_name\": \"</strong>*\"  <br />}  <br />}  <br />]  <br />}</td>\n<td><strong>total</strong>: tổng feedback hiện có.  <br /><strong>data</strong>: danh sách các feedback:  <br />- phoneNumber: số điện thoại gửi  <br />- sentDate: ngày gửi  <br />- submitDate: ngày feedback dạng timestamp milisecond  <br />- rate: số sao đánh gía  <br />- note: ghi chú khách hàng nhập vào.  <br />- feedbacks: các option của template khách hàng đã chọn.  <br />-idOmniMess: IdOmniMess đã gửi bằng API SendMessage  <br />-list_param: danh sách biến truyền trong template lúc gửi tin (mỗi tin sẽ có idOmniMess và list_param khác nhau)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniReport","GetRatingResult"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"f26a2d07-e040-41ca-b56e-0b509378ba4d"}],"id":"d445b4e6-9819-434f-8514-a3724944b239","_postman_id":"d445b4e6-9819-434f-8514-a3724944b239","description":""},{"name":"Webhook","id":"3a177b42-2b23-444a-91a3-ddcba9326a35","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"idOmniMess\":\"XXXXXXXXXX\",\r\n    \"Status\":\"XXXXXXXXXX\",\r\n    \"Channel\":\"\",\r\n    \"ErrorCode\":\"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"<Link hook phía đối tác>","description":"<p>INCOM sẽ trả trạng thái tin thông qua request HTTP POST với các thông tin như sau:</p>\n<h1 id=\"request\">Request:</h1>\n<p>Header: ICOMNI-Signature: &lt;đoạn mã do 2 bên quy định&gt;</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code> Body:\n\n</code></pre><p>{<br />\"idOmniMess\":Chuỗi tiền tố ICOMNI và 30 ký tự,<br />\"Status\":\"trạng thái tin\",</p>\n<p>\"requestId\":\"requestid đối tác truyền sang lúc gửi tin\",<br />\"Channel\":\"string\",<br />\"ErrorCode\":\"string\"<br />}</p>\n<p>Note:</p>\n<p>- Dữ liệu trả về theo từng kênh:</p>\n<p>ZNS:<br />{<br />\"IdOmniMess\": \"ICOMNI-XXXXXXXXXXX\",<br />\"Status\": \"SUCCESS\" ,</p>\n<p>\"requestId\":\"AAAAAAAAAA\",<br />\"Channel\":\"ZNS\"<br />\"ErrorCode\":\"0\"<br />}</p>\n<p>Trong đó Status trả về trạng thái:<br />\"SUCCESS\": Tin đã được đến zalo thành công<br />\"RECEIVE\": Người dùng đã nhận được tin nhắn zalo<br />\"FAIL\": Thất bại</p>\n<p>Auto Call :<br />{<br />\"IdOmniMess\": \"ICOMNI-XXXXXXXXXXX\",<br />\"Status\": \"SUCCESS\" ,</p>\n<p>\"requestId\":\"AAAAAAAAAA\",<br />\"Channel\":\"AUTOCALL\",<br />\"ErrorCode\":\"0\"<br />}</p>\n<p>Trong đó Status trả về trạng thái:<br />\"PROCESSING\": Tin đang xử lý<br />\"SUCCESS\": Tin gửi đến máy thành công<br />\"FAIL\": Thất bại</p>\n<p>Brandname SMS:<br />{<br />\"IdOmniMess\": \"ICOMNI-XXXXXXXXXXX\",<br />\"Status\": \"SUCCESS\" ,</p>\n<p>\"requestId\":\"AAAAAAAAAA\",<br />\"Channel\":\"BRANDNAMESMS\",<br />\"ErrorCode\":\"0\",<br />\"MtCount\" 1,<br />\"TelcoId\" : 1<br />}<br />Trong đó:<br />MtCount: số lượng tin tính tiền,<br />TelcoId: Id của nhà mạng<br />Status trả về trạng thái:<br />\"SUCCESS\": Tin gửi đến máy thành công<br />\"FAIL\": Thất bại</p>\n<p>-Khi status là FAIL sẽ có thêm ErrorCode (mã lỗi) tùy thuộc vào các kênh khác nhau sẽ có mã lỗi khác nhau chi tiết tại link: <a href=\"https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg\">https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg</a></p>\n","urlObject":{"host":["<Link hook phía đối tác>"],"query":[],"variable":[]}},"response":[],"_postman_id":"3a177b42-2b23-444a-91a3-ddcba9326a35"}],"id":"b2ac3bec-665c-4c04-b74b-1ebcd121511d","description":"<p>API gửi tin đa kênh (OMNI)</p>\n","_postman_id":"b2ac3bec-665c-4c04-b74b-1ebcd121511d"},{"name":"OMNI ver EN","item":[{"name":"Basic Auth","item":[{"name":"Send Message OMNI","id":"1db4c704-0e3b-41c9-a57b-7e7abd9d4933","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXX\",\r\n    \"phonenumber\":\"XXXXXXXXXX\",\r\n    \"routerule\":[\r\n        \"1\",\"2\",\"3\"\r\n    ],\r\n    \"templatecode\":\"XXXXXXX\",\r\n    \"list_param\":{\r\n        \"XXXX\":\"XXXXX\",\r\n        \"YYYY\":\"YYYYY\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniMessage/SendMessage","description":"<p>API used to send OMNI messages to phonenumbers</p>\n<ul>\n<li><strong>username</strong> and <strong>password</strong> : provided by INCOM</li>\n<li><strong>phonenumber</strong> : the recipient's phone number (recommended format: 84xxxxxxxxx)</li>\n<li><strong>routerule</strong> : Rules for channel routing using smart channel sliding mechanism (the first channel will be automatically switched to the second channel if sending fails, and if that fails, continue to switch to the third channel). 1: ZNS, 2: Autocall, 3: SMS</li>\n<li><strong>templatecode</strong> : Template code provided by INCOM (User register the content with INCOM, Template code will be returned when procedures is completed).</li>\n<li><strong>list_param</strong> : list of parameters (depending on the template there will be different parameters list)</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>phonenumber</td>\n<td>string</td>\n</tr>\n<tr>\n<td>routerule</td>\n<td>string</td>\n</tr>\n<tr>\n<td>templatecode</td>\n<td>string</td>\n</tr>\n<tr>\n<td>list_param</td>\n<td>object</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"1\",  <br />\"code\": \"Success\",  <br />\"idOmniMess\": \"ICOMN-XXXXXXXXXXXXXXXXXXXXXX\"  <br />}</td>\n<td>Success: INCOM recieved the request. Message status will be updated in API  <br />GetStatus or Webhook which is registered with INCOM base on  <br />idOmniMess.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>username and password was wrong</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>Can't access from this IP</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-1\",  <br />\"code\": \"PhoneNumber Wrong Format\"  <br />}</td>\n<td>PhoneNumber Wrong Format</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-2\",  <br />\"code\": \"Wrong Format Parameter: xxxxxx\"  <br />}</td>\n<td>Wrong Format Parameter: xxxxxx</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-3\",  <br />\"code\": \"You have run out of messages\"  <br />}</td>\n<td>The Omni messaging quota has been exhausted. Please contact INCOM Bussiness Development Center for additional quota allocation.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-6\",  <br />\"code\": \"Can't find template with templatecode: xxxxxx \"  <br />}</td>\n<td>Can't find template with templatecode: xxxxxx</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-8\",  <br />\"code\": \"Can't find any routing for this request\"  <br />}</td>\n<td>No routerule found for the template code. Please contact technical support for reconfiguration</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-9\",  <br />\"code\": \"Can't find any information about channel: XXXXX\"  <br />}</td>\n<td>Channel XXXXX in routerule was wrong. Please contact technical support for reconfiguration.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniMessage","SendMessage"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"1db4c704-0e3b-41c9-a57b-7e7abd9d4933"},{"name":"Get Status OMNI","id":"619b628e-60e0-4ee9-b095-1b6826580f89","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXX\",\r\n    \"idOmniMess\":\"ICOMNI-XXXXXXXXXXXXXXXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniReport/GetStatusOmni","description":"<p>This API use for get message status OMNI base on idOmniMess which was recieved when create request <strong>Send Message OMNI</strong> success.</p>\n<ul>\n<li><strong>username</strong> and <strong>password</strong> : provided by INCOM</li>\n<li><strong>idOmniMess :</strong> idOmniMess which was recieved when create request <strong>Send Message OMNI</strong> success.</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>idOmniMess</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"phonenumber\":\"84836106872\", \"list_param\":\"{\"otp\":\"123456\"}\",  <br />\"createdatetime\":\"21/05/2021 14:43:22\",  <br />\"status\":\"FAIL\",  <br />\"channel\":\"XXXX\",  <br />\"templatecode\":\"XXXX\"  <br />}</td>\n<td>Status includes the following types:  <br />• FAIL  <br />• SUCCESS  <br />• PROCESSING  <br />• RECEIVED: Message delivered to the user's device for the ZNS channel. errorCode: Depending on the sending channel, there will be different error codes. Details can be found at <a href=\"https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg\">https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg</a>  <br />  <br />For individual channels, additional necessary information fields will be:  <br />• SMS: mtcount (billable message count), telcoid (telco ID)  <br />• ZNS: ischarged (whether the message is billable or not)  <br />• Autocall: duration (call duration)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>Can't access from this IP</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>username and password was wrong</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniReport","GetStatusOmni"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"619b628e-60e0-4ee9-b095-1b6826580f89"},{"name":"Get Template OMNI","id":"102fe27b-b2ca-424b-988a-36d9184c8c28","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXX\",\r\n    \"itemcount\":5,\r\n    \"page\":1\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/TemplateOmni/GetTemplate","description":"<p>This API use to get list template was mapping with the account</p>\n<ul>\n<li><strong>username</strong> and <strong>password</strong> : provided by INCOM</li>\n<li><strong>itemcount</strong>: amount get.</li>\n<li><strong>page</strong>: page.</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>itemcount</td>\n<td>int</td>\n</tr>\n<tr>\n<td>page</td>\n<td>int</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"ListTemp\":[  <br />{  <br />\"templateCode\":\"XXXXX\",  <br />\"contentRegex\":\"XXXXX\",  <br />\"contentChannel\":{  <br />\"1\":\"XXXXX\",  <br />\"2\":\"XXXXX\",  <br />\"3\":\"XXXXX\"  <br />},  <br />\"paramsFormat\":{  <br />\"XXXX\":{  <br />\"regex\":\"\\b.{0,30}\\b\",  <br />\"type\":\"normal\"  <br />},  <br />\"YYYYY\":{  <br />\"regex\":\"\\b.{0,100}\\b\",  <br />\"type\":\" normal\"  <br />}  <br />},  <br />\"senderChannel\":{  <br />\"1\":\"XXXXX\",  <br />\"2\":\"XXXXX\",  <br />\"3\":\"XXXXX\"  <br />},  <br />\"timeSwitchChannel\":0  <br />}  <br />],  <br />\"TotalItem\":6,  <br />\"Page\":1  <br />}</td>\n<td><strong>ListTemp</strong>: list of template.  <br /><strong>TotalItem</strong>: total template.  <br /><strong>Page</strong>: current page.  <br />**Note:  <br />- templateCode: templateCode use to call api  <br />- contentRegex: content template  <br />- contentChannel: content by channels.  <br />- paramsFormat: format parameter includes regex và type.  <br />- senderChannel: Sender by channel  <br />- timeSwitchChannel: duration limit switch channel.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>username và password was wrong</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>Can't access from this IP</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","TemplateOmni","GetTemplate"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"102fe27b-b2ca-424b-988a-36d9184c8c28"},{"name":"UpdateWebhookEndPoint","id":"7317fc9d-e09f-47a2-9587-c9fa492222a5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXX\",\r\n    \"password\":\"XXXXXXXX\",\r\n    \"Endpoint\":\"XXXXXXXX\",\r\n    \"Header\":\"XXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniHook/UpdateWebhookEndPoint","description":"<p>API used to update the webhook URL for the Omni API account.</p>\n<ul>\n<li><p><strong>Username and password</strong>: Provided by INCOM.</p>\n</li>\n<li><p><strong>Endpoint</strong>: The URL for receiving webhook data.</p>\n</li>\n<li><p><strong>Header</strong>: The header containing the URL.</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Endpoint</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Header</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />Status:\"Success\",  <br />old:{  <br />Endpoint:\"XXXX\",  <br />Header:\"XXXX\"  <br />}  <br />new:{  <br />Endpoint:\"YYYY\"  <br />Header:\"YYYY\"  <br />}  <br />}</td>\n<td>Status: status after update  <br />+ Success: successful  <br />+ Fail: failed.  <br />In the case of Success, the response includes 2 additional fields  <br />- old: Includes the previous Endpoint and Header.  <br />- new: Includes the updated Endpoint and Header.  <br />In the case of Fail, the response includes Desc  <br />Failure error</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Wrong username and password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>The user's IP is not in the system whitelist.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniHook","UpdateWebhookEndPoint"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"7317fc9d-e09f-47a2-9587-c9fa492222a5"},{"name":"GetRatingResult","id":"6f08145e-c9de-4fc3-8343-60f1577d6d65","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\":\"XXXXXXXXXX\",\n    \"password\":\"XXXXXXXXXX\",\n    \"TemplateCode\":\"IncomRating\",\n    \"From\":\"2023-11-01\",\n    \"To\":\"2023-11-30\",\n    \"Page\":\"1\",\n    \"ItemCount\":\"50\"\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniReport/GetRatingResult","description":"<p>StartFragment</p>\n<p>API to Get Zalo Template Rating Results<br /><strong>Request</strong>:</p>\n<ul>\n<li><strong>username</strong> and password: the account credentials provided by INCOM.</li>\n<li><strong>ItemCount</strong>: the number of templates to retrieve.</li>\n<li><strong>Page</strong>: the desired page for pagination.</li>\n<li><strong>From</strong>: the start date.</li>\n<li><strong>To</strong>: the end date.</li>\n<li><strong>TemplateCode</strong>: the TemplateCode provided by INCOM for rating.</li>\n</ul>\n<h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"total\": 1,  <br />\"data\": [  <br />{  <br />\"note\": \"Test \",  <br />\"rate\": 4,  <br />\"submitDate\": 1700646353357.0,  <br />\"msgId\": \"4856d456801a1f40460f\",  <br />\"feedbacks\": null,  <br />\"trackingId\": \"ICZNS-aa2f9937665fcc58e23d17a66f2300\",  <br />\"phoneNumber\": \"84932399926\",  <br />\"sentDate\": \"2023-11-22 16:43:35\",  <br />\"idOmniMess\": \"ICOMNI-XXXXXXXXXXXXXXXXXX\",  <br />\"list_param\": {  <br />\"order_date\": \"<strong>*\",  <br />\"customer_name\": \"</strong>*\"  <br />}  <br />}  <br />]  <br />}</td>\n<td><strong>total</strong>: total feedback available.  <br /><strong>data</strong>: list of feedback:  <br />  <br />phoneNumber: sender's phone number.  <br />sentDate: date sent.  <br />submitDate: feedback date in millisecond timestamp.  <br />rate: rating stars.  <br />note: customer's input note.  <br />feedbacks: options chosen by the customer from the template.  <br />idOmniMess: IdOmniMess sent via the SendMessage API.  <br />list_param: list of variables passed in the template when sending the message (each message will have different idOmniMess and list_param).</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Incorrect username and password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>The user's IP address is not in the system whitelist.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniReport","GetRatingResult"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"6f08145e-c9de-4fc3-8343-60f1577d6d65"}],"id":"527b4624-b0af-4cec-9967-65ebb9553574","_postman_id":"527b4624-b0af-4cec-9967-65ebb9553574","description":""},{"name":"Via Token","item":[{"name":"GetAccessToken","id":"f3479f51-4f25-47b7-8f10-7054ab36e630","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXX\",\r\n    \"password\":\"XXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/Authenticate/GetAccessToken","description":"<p>API to obtain an access_token for authentication when calling APIs.</p>\n<ul>\n<li><strong>username</strong> and <strong>password</strong> : Account and password provided by INCOM.</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"access_token\": \"\",  <br />\"refresh_token\": \"\",  <br />\"expires_in\": \"\"  <br />}</td>\n<td>access_token: Access token information used in the header when calling APIs  <br />refresh_token: Refresh token information used to call the RefreshAccessToken API to renew the access token when it expires  <br />expires_in: Expiration time of the token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Wrong username and password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>The user's IP is not in the system whitelist.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>This account is already had token</td>\n<td>The account has been issued a token previously.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","Authenticate","GetAccessToken"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"f3479f51-4f25-47b7-8f10-7054ab36e630"},{"name":"RefreshAccessToken","id":"80dfc3b6-0ca2-49a4-ae53-017d0905b4fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"refresh_token","value":"{{refresh_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/Authenticate/RefreshAccessToken","description":"<p>API to obtain an access_token for authentication when calling APIs.</p>\n<ul>\n<li><strong>username</strong> and <strong>password</strong> : Account and password provided by INCOM.</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"access_token\": \"\",  <br />\"refresh_token\": \"\",  <br />\"expires_in\": \"\"  <br />}</td>\n<td>access_token: Access token information used in the header when calling APIs  <br />refresh_token: Refresh token information used to call the RefreshAccessToken API to renew the access token when it expires  <br />expires_in: Token expiration time</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Wrong username, password or refresh_token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>The user's IP is not in the system whitelist.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","Authenticate","RefreshAccessToken"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"80dfc3b6-0ca2-49a4-ae53-017d0905b4fe"},{"name":"Send Message OMNI","id":"d4a4a6c9-e337-4064-b7a3-00d48d539812","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phonenumber\":\"XXXXXXXXXX\",\r\n    \"routerule\":[\r\n        \"1\",\"2\",\"3\"\r\n    ],\r\n    \"templatecode\":\"XXXXXXX\",\r\n    \"list_param\":{\r\n        \"XXXX\":\"XXXXX\",\r\n        \"YYYY\":\"YYYYY\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniMessage/SendMessage","description":"<p>API used to send OMNI messages to a phone number.</p>\n<ul>\n<li><p>phonenumber: Recipient's phone number (recommended in standard 84 format).</p>\n</li>\n<li><p>routerule: Rule for channel routing using an intelligent fallback mechanism (if the first channel fails, it automatically switches to the second, and if that fails, it switches to the third). 1: ZNS, 2: Autocall, 3: SMS.</p>\n</li>\n<li><p>templatecode: Template code provided by INCOM upon template registration.</p>\n</li>\n<li><p>list_param: List of variables (varies depending on the template).</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phonenumber</td>\n<td>string</td>\n</tr>\n<tr>\n<td>routerule</td>\n<td>string</td>\n</tr>\n<tr>\n<td>templatecode</td>\n<td>string</td>\n</tr>\n<tr>\n<td>list_param</td>\n<td>object</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"1\",  <br />\"code\": \"Success\",  <br />\"idOmniMess\": \"Chuỗi tiền tố ICOMNI và 30 ký tự\"  <br />}</td>\n<td>Success: INCOM has received the message request. The status will be updated via the GetStatus API or the webhook registered with INCOM based on the received idOmniMess.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Wrong token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>The user's IP is not in the system whitelist.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-1\",  <br />\"code\": \"PhoneNumber Wrong Format\"  <br />}</td>\n<td>The recipient's phone number is in an incorrect format.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-2\",  <br />\"code\": \"Wrong Format Parameter: xxxxxx\"  <br />}</td>\n<td>The variable xxxxxx is in an incorrect format.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-3\",  <br />\"code\": \"You have run out of messages\"  <br />}</td>\n<td>The number of Omni message sends has been exhausted. Please contact the business department for additional allocation.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-6\",  <br />\"code\": \"Can't find template with templatecode: xxxxxx \"  <br />}</td>\n<td>Cannot find a template with the requested ID.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-8\",  <br />\"code\": \"Can't find any routing for this request\"  <br />}</td>\n<td>No routerule found for the template code. Please contact technical support for reconfiguration.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-9\",  <br />\"code\": \"Can't find any information about channel: XXXXX\"  <br />}</td>\n<td>Channel XXXXX error in routerule. Please contact technical support for reconfiguration.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniMessage","SendMessage"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"d4a4a6c9-e337-4064-b7a3-00d48d539812"},{"name":"Get Status OMNI","id":"2be43a88-fd2c-4a10-9dce-0267202304e7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"idOmniMess\":\"ICOMNI-XXXXXXXXXXXXXXXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniReport/GetStatusOmni","description":"<p>API used to proactively retrieve the status of an OMNI message based on the idOmniMess received when successfully creating a Send Message OMNI request.</p>\n<ul>\n<li>idOmniMess: The message ID received when creating a Send Message OMNI request.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","OmniReport","GetStatusOmni"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"2be43a88-fd2c-4a10-9dce-0267202304e7"},{"name":"Get Template OMNI","id":"52ebcd50-1035-4392-ac5c-5fb89494cc73","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"templateCode\": \"XXXXXXXXXX\",\r\n    \"itemcount\":5,\r\n    \"page\":1\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/TemplateOmni/GetTemplate","description":"<p>API used to retrieve the list of templates authorized for the given API account</p>\n<ul>\n<li><p>itemcount is the number of templates to retrieve</p>\n</li>\n<li><p>page is the page number to retrieve</p>\n</li>\n<li><p>templateCode is the name of the template to search for.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","TemplateOmni","GetTemplate"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"52ebcd50-1035-4392-ac5c-5fb89494cc73"},{"name":"UpdateWebhookEndPoint","id":"eded3a24-21ce-4f62-9b1c-07c090096803","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}"}],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXX\",\r\n    \"password\":\"XXXXXXXX\",\r\n    \"Endpoint\":\"XXXXXXXX\",\r\n    \"Header\":\"XXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniHook/UpdateWebhookEndPoint","description":"<p>API used to update the webhook URL for the Omni API account</p>\n<ul>\n<li><p>Endpoint is the URL for receiving webhook data</p>\n</li>\n<li><p>Header is the header containing the URL</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Endpoint</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Header</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />Status:\"Success\",  <br />old:{  <br />Endpoint:\"XXXX\",  <br />Header:\"XXXX\"  <br />}  <br />new:{  <br />Endpoint:\"YYYY\"  <br />Header:\"YYYY\"  <br />}  <br />}</td>\n<td>Status is the status after the update  <br />+ Success is successful  <br />+ Fail is failed  <br />  <br />In the case of Success, the response includes two additional fields  <br />- old includes the previous Endpoint and Header  <br />- new includes the updated Endpoint and Header  <br />  <br />In the case of Fail, the response includes Desc describing the failure</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Wrong username and password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>The user's IP is not in the system whitelist</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniHook","UpdateWebhookEndPoint"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"eded3a24-21ce-4f62-9b1c-07c090096803"},{"name":"GetRatingResult","id":"d598e477-6329-42ca-b183-ff3f9e1644dc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"TemplateCode\":\"IncomRating\",\r\n    \"From\":\"2023-11-01\",\r\n    \"To\":\"2023-11-30\",\r\n    \"Page\":\"1\",\r\n    \"ItemCount\":\"50\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/OmniReport/GetRatingResult","description":"<p>API Lấy kết quả Template Rating của Zalo</p>\n<h1 id=\"request\">Request:</h1>\n<ul>\n<li><p><strong>ItemCount</strong>: số template muốn lấy.</p>\n</li>\n<li><p><strong>Page</strong>: phân trang muốn lấy.</p>\n</li>\n<li><p><strong>From</strong>: ngày bắt đầu.</p>\n</li>\n<li><p><strong>To</strong>: ngày kết thúc.</p>\n</li>\n<li><p><strong>TemplateCode</strong>: templateCode rating Incom cung cấp.</p>\n</li>\n</ul>\n<h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"total\": 1,  <br />\"data\": [  <br />{  <br />\"note\": \"Test \",  <br />\"rate\": 4,  <br />\"submitDate\": 1700646353357.0,  <br />\"msgId\": \"4856d456801a1f40460f\",  <br />\"feedbacks\": null,  <br />\"trackingId\": \"ICZNS-aa2f9937665fcc58e23d17a66f2300\",  <br />\"phoneNumber\": \"84932399926\",  <br />\"sentDate\": \"2023-11-22 16:43:35\",  <br />\"idOmniMess\": \"ICOMNI-XXXXXXXXXXXXXXXXXX\",  <br />\"list_param\": {  <br />\"order_date\": \"<strong>*\",  <br />\"customer_name\": \"</strong>*\"  <br />}  <br />}  <br />]  <br />}</td>\n<td><strong>total</strong>: tổng feedback hiện có.  <br /><strong>data</strong>: danh sách các feedback:  <br />- phoneNumber: số điện thoại gửi  <br />- sentDate: ngày gửi  <br />- submitDate: ngày feedback dạng timestamp milisecond  <br />- rate: số sao đánh gía  <br />- note: ghi chú khách hàng nhập vào.  <br />- feedbacks: các option của template khách hàng đã chọn.  <br />-idOmniMess: IdOmniMess đã gửi bằng API SendMessage  <br />-list_param: danh sách biến truyền trong template lúc gửi tin (mỗi tin sẽ có idOmniMess và list_param khác nhau)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniReport","GetRatingResult"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"d598e477-6329-42ca-b183-ff3f9e1644dc"}],"id":"243a2d6c-e4b3-44e1-954e-4f03b0d1e4ad","_postman_id":"243a2d6c-e4b3-44e1-954e-4f03b0d1e4ad","description":""},{"name":"Webhook","id":"64217e16-6cbf-410d-ae37-a54b1c0bd550","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"idOmniMess\":\"XXXXXXXXXX\",\r\n    \"Status\":\"XXXXXXXXXX\",\r\n    \"Channel\":\"\",\r\n    \"ErrorCode\":\"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"<Link webhook from partner>","description":"<p>INCOM will send message status with HTTP POST:</p>\n<h1 id=\"request\">Request:</h1>\n<p>Header: ICOMNI-Signature:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code> Body:\n\n</code></pre><p>{<br />\"idOmniMess\":\"ICOMNI-XXXXXXXXXXXXXXXXXX\",<br />\"Status\":\"string\",<br />\"Channel\":\"string\",<br />\"ErrorCode\":\"string\"<br />}</p>\n<p>Note:</p>\n<p>- Status:</p>\n<ul>\n<li>PROCESSING</li>\n<li>FAIL</li>\n<li>SUCCESS</li>\n</ul>\n<p>-ErrorCode: More detail at link: <a href=\"https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg\">https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg</a></p>\n<p>-With separate channels, there will be additional fields of necessary information:</p>\n<ul>\n<li>SMS: MtCount (number of money messages), TelcoId (telecom carrier id)</li>\n</ul>\n","urlObject":{"host":["<Link webhook from partner>"],"query":[],"variable":[]}},"response":[],"_postman_id":"64217e16-6cbf-410d-ae37-a54b1c0bd550"}],"id":"1983007b-9bf1-4430-a3b9-d49e7fbacbcc","description":"<p>API OMNI Document</p>\n","_postman_id":"1983007b-9bf1-4430-a3b9-d49e7fbacbcc"},{"name":"OMNI SandBox","item":[{"name":"Basic Auth","item":[{"name":"Send Message OMNI","id":"d24348cb-deba-4884-a960-96ebee52ff1d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"*******\",\r\n    \"password\":\"*******\",\r\n    \"phonenumber\":\"0345215309\",\r\n    \"routerule\":[\r\n        \"1\",\"2\",\"3\"\r\n    ],\r\n    \"templatecode\":\"OTPTEST\",\r\n    \"list_param\":{\r\n        \"otp\":\"XXXXX\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/OmniMessage/SendMessage","description":"<p>API dùng để gửi tin OMNI đến số điện thoại</p>\n<ul>\n<li><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</li>\n<li><strong>phonenumber</strong> : số điện thoại nhận tin (Khuyến cáo dạng chuẩn 84)</li>\n<li><strong>routerule</strong> : Rule các kênh sẽ đi theo cơ chế trượt kênh thông minh (kênh đầu tiên nếu gửi thất bại sẽ tự động chuyển kênh thứ 2 gửi, nếu thất bại, tiếp tục chuyển kênh thứ 3). 1: ZNS , 2: Autocall, 3: SMS</li>\n<li><strong>templatecode</strong> : mã template của phía INCOM cấp khi đăng ký template</li>\n<li><strong>list_param</strong> : danh sách các biến (tùy thuộc vào template sẽ có danh sách biến khác nhau</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>phonenumber</td>\n<td>string</td>\n</tr>\n<tr>\n<td>routerule</td>\n<td>string</td>\n</tr>\n<tr>\n<td>templatecode</td>\n<td>string</td>\n</tr>\n<tr>\n<td>list_param</td>\n<td>object</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"1\",  <br />\"code\": \"Success\",  <br />\"idOmniMess\": \"Chuỗi tiền tố ICOMNI và 30 ký tự\"  <br />}  <br /></td>\n<td>Success: INCOM đã nhận  <br />được request gửi tin. Trạng  <br />thái sẽ được update ở API  <br />GetStatus hoặc webhook đã đăng ký với bên INCOM dựa theo  <br />idOmniMess nhận về.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-1\",  <br />\"code\": \"PhoneNumber Wrong Format\"  <br />}  <br /></td>\n<td>Số điện thoại nhận không đúng định dạng.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-2\",  <br />\"code\": \"Wrong Format Parameter: xxxxxx\"  <br />}  <br /></td>\n<td>Biến xxxxxx sai định dạng</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-3\",  <br />\"code\": \"You have run out of messages\"  <br />}  <br /></td>\n<td>Số lần gửi tin Omni đã hết liên hệ kinh doanh để cấp thêm.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-6\",  <br />\"code\": \"Can't find template with templatecode: xxxxxx \"  <br />}  <br /></td>\n<td>Không tìm được template có id như yêu cầu</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-8\",  <br />\"code\": \"Can't find any routing for this request\"  <br />}  <br /></td>\n<td>Không tìm thấy routerule nào cho template code, liên hệ kỹ thuật để cấu hình lại.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-9\",  <br />\"code\": \"Can't find any information about channel: XXXXX\"  <br />}  <br /></td>\n<td>Lỗi Channel XXXXX trong routerule liên hệ kỹ thuật để cấu hình lại.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniMessage","SendMessage"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"d24348cb-deba-4884-a960-96ebee52ff1d"},{"name":"Get Status OMNI","id":"37663fc8-1871-4790-99ee-0a2dc3eaed0e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXX\",\r\n    \"idOmniMess\":\"ICOMNI-XXXXXXXXXXXXXXXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/OmniReport/GetStatusOmni","description":"<p>API dùng để chủ động lấy trạng thái của tin OMNI theo idOmniMess nhận được khi tạo request <strong>Send Message OMNI</strong> thành công</p>\n<ul>\n<li><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</li>\n<li><strong>idOmniMess :</strong> id tin nhắn nhận được khi tạo request <strong>Send Message OMNI</strong></li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>idOmniMess</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"phonenumber\":\"84836106872\", \"list_param\":\"{\"otp\":\"123456\"}\",  <br />\"createdatetime\":\"21/05/2021 14:43:22\",  <br />\"status\":\"FAIL\",  <br />\"channel\":\"XXXX\",  <br />\"templatecode\":\"XXXX\" ,  <br />\"errorCode\":\"XXXX\"  <br />}  <br /></td>\n<td>Status gồm các loại:  <br />-FAIL:thất bại  <br />-SUCCESS: thành công  <br />-PROCESSING: đang xử lý  <br />errorCode: tùy thuộc vào kênh gửi sẽ có bảng mã lỗi khác nhau chi tiết tại <a href=\"https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg\">https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg</a>  <br />Với các kênh riêng biệt sẽ có thêm trường thông tin cần thiết:  <br />-SMS: mtcount (số lượng tin tính tiền), telcoid (id nhà mạng)  <br />-ZNS: ischarged (tin tính phí hay không)  <br />-Autocall: duration(thời lượng cuộc gọi)  <br />  <br /></td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniReport","GetStatusOmni"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"37663fc8-1871-4790-99ee-0a2dc3eaed0e"},{"name":"Get Template OMNI","id":"772bd48f-b476-4a24-9222-f13a6bc0dbfb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXX\",\r\n    \"templateCode\": \"XXXXXXXXXX\",\r\n    \"itemcount\":5,\r\n    \"page\":1\r\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/TemplateOmni/GetTemplate","description":"<p>API dùng để lấy danh sách template được cấp quyền theo account api đã cấp</p>\n<ul>\n<li><p><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</p>\n</li>\n<li><p><strong>templateCode</strong>: tên template cần tìm kiếm</p>\n</li>\n<li><p><strong>itemcount</strong>: số template muốn lấy.</p>\n</li>\n<li><p><strong>page</strong>: phân trang muốn lấy.</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>templateCode</td>\n<td>string (allow empty)</td>\n</tr>\n<tr>\n<td>itemcount</td>\n<td>int</td>\n</tr>\n<tr>\n<td>page</td>\n<td>int</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"ListTemp\":[  <br />{  <br />\"templateCode\":\"XXXXX\",  <br />\"contentRegex\":\"XXXXX\",  <br />\"contentChannel\":{  <br />\"1\":\"XXXXX\",  <br />\"2\":\"XXXXX\",  <br />\"3\":\"XXXXX\"  <br />},  <br />\"paramsFormat\":{  <br />\"XXXX\":{  <br />\"regex\":\"\\b.{0,30}\\b\",  <br />\"type\":\"normal\"  <br />},  <br />\"YYYYY\":{  <br />\"regex\":\"\\b.{0,100}\\b\",  <br />\"type\":\" normal\"  <br />}  <br />},  <br />\"senderChannel\":{  <br />\"1\":\"XXXXX\",  <br />\"2\":\"XXXXX\",  <br />\"3\":\"XXXXX\"  <br />},  <br />\"timeSwitchChannel\":0  <br />}  <br />],  <br />\"TotalItem\":6,  <br />\"Page\":1  <br />}</td>\n<td><strong>ListTemp</strong>: danh sách template trong phân trang hiện tại.  <br /><strong>TotalItem</strong>: tổng template hiện có.  <br /><strong>Page</strong>: phân trang hiện tại.  <br />**Note: object template sẽ có dạng:  <br />- templateCode: mã template dùng để gọi api  <br />- contentRegex: nội dung template  <br />- contentChannel: nội dung đi theo từng kênh.  <br />- paramsFormat: định dạng biến của template gồm regex và loại biến  <br />- senderChannel: định danh gửi theo từng kênh  <br />- timeSwitchChannel: thời gian giới hạn chuyển kênh khi thất bại</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","TemplateOmni","GetTemplate"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"772bd48f-b476-4a24-9222-f13a6bc0dbfb"},{"name":"GetRatingResult","id":"d7e41a69-27c7-4cbf-8bc6-b98decd6f4ab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\":\"XXXXXXXXXX\",\n    \"password\":\"XXXXXXXXXX\",\n    \"TemplateCode\":\"IncomRating\",\n    \"From\":\"2023-11-01\",\n    \"To\":\"2023-11-30\",\n    \"Page\":\"1\",\n    \"ItemCount\":\"50\"\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/OmniReport/GetRatingResult","description":"<p>API Lấy kết quả Template Rating của Zalo</p>\n<h1 id=\"request\">Request:</h1>\n<ul>\n<li><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</li>\n<li><strong>ItemCount</strong>: số template muốn lấy.</li>\n<li><strong>Page</strong>: phân trang muốn lấy.</li>\n<li><strong>From</strong>: ngày bắt đầu.</li>\n<li><strong>To</strong>: ngày kết thúc.</li>\n<li><strong>TemplateCode</strong>: templateCode rating Incom cung cấp.</li>\n</ul>\n<h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"total\": 1,  <br />\"data\": [  <br />{  <br />\"note\": \"Test \",  <br />\"rate\": 4,  <br />\"submitDate\": 1700646353357.0,  <br />\"msgId\": \"4856d456801a1f40460f\",  <br />\"feedbacks\": null,  <br />\"trackingId\": \"ICZNS-aa2f9937665fcc58e23d17a66f2300\",  <br />\"phoneNumber\": \"84932399926\",  <br />\"sentDate\": \"2023-11-22 16:43:35\",  <br />\"idOmniMess\": \"ICOMNI-XXXXXXXXXXXXXXXXXX\",  <br />\"list_param\": {  <br />\"order_date\": \"<strong>*\",  <br />\"customer_name\": \"</strong>*\"  <br />}  <br />}  <br />]  <br />}</td>\n<td><strong>total</strong>: tổng feedback hiện có.  <br /><strong>data</strong>: danh sách các feedback:  <br />- phoneNumber: số điện thoại gửi  <br />- sentDate: ngày gửi  <br />- submitDate: ngày feedback dạng timestamp milisecond  <br />- rate: số sao đánh gía  <br />- note: ghi chú khách hàng nhập vào.  <br />- feedbacks: các option của template khách hàng đã chọn.  <br />-idOmniMess: IdOmniMess đã gửi bằng API SendMessage  <br />-list_param: danh sách biến truyền trong template lúc gửi tin (mỗi tin sẽ có idOmniMess và list_param khác nhau)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniReport","GetRatingResult"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"d7e41a69-27c7-4cbf-8bc6-b98decd6f4ab"},{"name":"UpdateWebhookEndPoint","id":"28d1c2b2-e5d0-4c96-913d-f82f1209c342","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXX\",\r\n    \"password\":\"XXXXXXXX\",\r\n    \"Endpoint\":\"XXXXXXXX\",\r\n    \"Header\":\"XXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/OmniHook/UpdateWebhookEndPoint","description":"<p>API dùng để cập nhật lại link nhận webhook tài khoản api omni</p>\n<ul>\n<li><p><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</p>\n</li>\n<li><p><strong>Endpoint</strong>: đường dẫn link webhook trả dữ liệu.</p>\n</li>\n<li><p><strong>Header</strong>: Header đường dẫn</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Endpoint</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Header</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />Status:\"Success\",  <br />old:{  <br />Endpoint:\"XXXX\",  <br />Header:\"XXXX\"  <br />}  <br />new:{  <br />Endpoint:\"YYYY\"  <br />Header:\"YYYY\"  <br />}  <br />}</td>\n<td>Status: trạng thái sau khi update  <br />+ Success: thành công  <br />+ Fail: thất bại.  <br />Trường hợp Success trả về thêm 2 trường  <br />- old : Gồm Endpoint và Header cũ.  <br />- new: Gồm Endpoint và Header mới update  <br />Trường hợp Fail trả về Desc  <br />Lỗi thất bại</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniHook","UpdateWebhookEndPoint"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"28d1c2b2-e5d0-4c96-913d-f82f1209c342"}],"id":"7f1a5b46-fcad-49f6-9285-d66490315b4a","_postman_id":"7f1a5b46-fcad-49f6-9285-d66490315b4a","description":""},{"name":"Via Token","item":[{"name":"GetAccessToken","id":"0fd5ce66-9cf0-4848-92b4-6b96946cb72b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXX\",\r\n    \"password\":\"XXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/Authenticate/GetAccessToken","urlObject":{"protocol":"https","path":["api","Authenticate","GetAccessToken"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"0fd5ce66-9cf0-4848-92b4-6b96946cb72b"},{"name":"RefreshAccessToken","id":"71a86f70-8040-4869-89ee-a38e9f3c61e3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"refresh_token","value":"{{refresh_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/Authenticate/RefreshAccessToken","description":"<p>API để lấy access_token dùng cho xác thực khi gọi các API</p>\n<ul>\n<li><strong>username</strong> và <strong>password</strong> : tài khoản và mật khẩu do INCOM cung cấp</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"access_token\": \"\",  <br />\"refresh_token\": \"\",  <br />\"expires_in\": \"\"  <br />}</td>\n<td>access_token: thông tin access_token dùng để truyển trong header khi gọi các api  <br />refresh_token: thông tin refresh_token dùng để gọi api RefreshAccessToken cấp lại access_token khi hết hạn  <br />expires_in: thời gian hết hạn của token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username, password hoặc refresh_token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","Authenticate","RefreshAccessToken"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"71a86f70-8040-4869-89ee-a38e9f3c61e3"},{"name":"Get Status OMNI","id":"87ee0dd9-c7e9-43e1-afa2-e5b1f629911f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"idOmniMess\":\"ICOMNI-XXXXXXXXXXXXXXXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/OmniReport/GetStatusOmni","description":"<p>API dùng để chủ động lấy trạng thái của tin OMNI theo idOmniMess nhận được khi tạo request <strong>Send Message OMNI</strong> thành công</p>\n<ul>\n<li><strong>idOmniMess :</strong> id tin nhắn nhận được khi tạo request <strong>Send Message OMNI</strong></li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","OmniReport","GetStatusOmni"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"87ee0dd9-c7e9-43e1-afa2-e5b1f629911f"},{"name":"Send Message OMNI","id":"da7156cc-4ba7-445e-8480-dff3034443d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phonenumber\":\"XXXXXXXXXX\",\r\n    \"routerule\":[\r\n        \"1\",\"2\",\"3\"\r\n    ],\r\n    \"templatecode\":\"XXXXXXX\",\r\n    \"list_param\":{\r\n        \"XXXX\":\"XXXXX\",\r\n        \"YYYY\":\"YYYYY\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/OmniMessage/SendMessage","description":"<p>API dùng để gửi tin OMNI đến số điện thoại</p>\n<ul>\n<li><strong>phonenumber</strong> : số điện thoại nhận tin (Khuyến cáo dạng chuẩn 84)</li>\n<li><strong>routerule</strong> : Rule các kênh sẽ đi theo cơ chế trượt kênh thông minh (kênh đầu tiên nếu gửi thất bại sẽ tự động chuyển kênh thứ 2 gửi, nếu thất bại, tiếp tục chuyển kênh thứ 3). 1: ZNS , 2: Autocall, 3: SMS</li>\n<li><strong>templatecode</strong> : mã template của phía INCOM cấp khi đăng ký template</li>\n<li><strong>list_param</strong> : danh sách các biến (tùy thuộc vào template sẽ có danh sách biến khác nhau</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phonenumber</td>\n<td>string</td>\n</tr>\n<tr>\n<td>routerule</td>\n<td>string</td>\n</tr>\n<tr>\n<td>templatecode</td>\n<td>string</td>\n</tr>\n<tr>\n<td>list_param</td>\n<td>object</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"1\",  <br />\"code\": \"Success\",  <br />\"idOmniMess\": \"Chuỗi tiền tố ICOMNI và 30 ký tự\"  <br />}</td>\n<td>Success: INCOM đã nhận  <br />được request gửi tin. Trạng  <br />thái sẽ được update ở API  <br />GetStatus hoặc webhook đã đăng ký với bên INCOM dựa theo  <br />idOmniMess nhận về.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai token</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-1\",  <br />\"code\": \"PhoneNumber Wrong Format\"  <br />}</td>\n<td>Số điện thoại nhận không đúng định dạng.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-2\",  <br />\"code\": \"Wrong Format Parameter: xxxxxx\"  <br />}</td>\n<td>Biến xxxxxx sai định dạng</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-3\",  <br />\"code\": \"You have run out of messages\"  <br />}</td>\n<td>Số lần gửi tin Omni đã hết liên hệ kinh doanh để cấp thêm.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-6\",  <br />\"code\": \"Can't find template with templatecode: xxxxxx \"  <br />}</td>\n<td>Không tìm được template có id như yêu cầu</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-8\",  <br />\"code\": \"Can't find any routing for this request\"  <br />}</td>\n<td>Không tìm thấy routerule nào cho template code, liên hệ kỹ thuật để cấu hình lại.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\"status\": \"-9\",  <br />\"code\": \"Can't find any information about channel: XXXXX\"  <br />}</td>\n<td>Lỗi Channel XXXXX trong routerule liên hệ kỹ thuật để cấu hình lại.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniMessage","SendMessage"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"da7156cc-4ba7-445e-8480-dff3034443d4"},{"name":"Get Template OMNI","id":"3cb16d96-dde7-49ff-87b7-5c3c7dd79555","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"templateCode\": \"XXXXXXXXXX\",\r\n    \"itemcount\":5,\r\n    \"page\":1\r\n}","options":{"raw":{"language":"json"}}},"url":"https://omni.incom.vn/api/TemplateOmni/GetTemplate","description":"<p>API dùng để lấy danh sách template được cấp quyền theo account api đã cấp</p>\n<ul>\n<li><p><strong>templateCode</strong>: tên template cần tìm kiếm</p>\n</li>\n<li><p><strong>itemcount</strong>: số template muốn lấy.</p>\n</li>\n<li><p><strong>page</strong>: phân trang muốn lấy.</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>templateCode</td>\n<td>string (allow null)</td>\n</tr>\n<tr>\n<td>itemcount</td>\n<td>int</td>\n</tr>\n<tr>\n<td>page</td>\n<td>int</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"ListTemp\":[  <br />{  <br />\"templateCode\":\"XXXXX\",  <br />\"contentRegex\":\"XXXXX\",  <br />\"contentChannel\":{  <br />\"1\":\"XXXXX\",  <br />\"2\":\"XXXXX\",  <br />\"3\":\"XXXXX\"  <br />},  <br />\"paramsFormat\":{  <br />\"XXXX\":{  <br />\"regex\":\"\\b.{0,30}\\b\",  <br />\"type\":\"normal\"  <br />},  <br />\"YYYYY\":{  <br />\"regex\":\"\\b.{0,100}\\b\",  <br />\"type\":\" normal\"  <br />}  <br />},  <br />\"senderChannel\":{  <br />\"1\":\"XXXXX\",  <br />\"2\":\"XXXXX\",  <br />\"3\":\"XXXXX\"  <br />},  <br />\"timeSwitchChannel\":0  <br />}  <br />],  <br />\"TotalItem\":6,  <br />\"Page\":1  <br />}</td>\n<td><strong>ListTemp</strong>: danh sách template trong phân trang hiện tại.  <br /><strong>TotalItem</strong>: tổng template hiện có.  <br /><strong>Page</strong>: phân trang hiện tại.  <br />**Note: object template sẽ có dạng:  <br />- templateCode: mã template dùng để gọi api  <br />- contentRegex: nội dung template  <br />- contentChannel: nội dung đi theo từng kênh.  <br />- paramsFormat: định dạng biến của template gồm regex và loại biến  <br />- senderChannel: định danh gửi theo từng kênh  <br />- timeSwitchChannel: thời gian giới hạn chuyển kênh khi thất bại</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","TemplateOmni","GetTemplate"],"host":["omni","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"3cb16d96-dde7-49ff-87b7-5c3c7dd79555"},{"name":"GetRatingResult","id":"db53a386-fe2c-40ad-b22b-7660ee54caba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"TemplateCode\":\"IncomRating\",\r\n    \"From\":\"2023-11-01\",\r\n    \"To\":\"2023-11-30\",\r\n    \"Page\":\"1\",\r\n    \"ItemCount\":\"50\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/OmniReport/GetRatingResult","description":"<p>API Lấy kết quả Template Rating của Zalo</p>\n<h1 id=\"request\">Request:</h1>\n<ul>\n<li><p><strong>ItemCount</strong>: số template muốn lấy.</p>\n</li>\n<li><p><strong>Page</strong>: phân trang muốn lấy.</p>\n</li>\n<li><p><strong>From</strong>: ngày bắt đầu.</p>\n</li>\n<li><p><strong>To</strong>: ngày kết thúc.</p>\n</li>\n<li><p><strong>TemplateCode</strong>: templateCode rating Incom cung cấp.</p>\n</li>\n</ul>\n<h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"total\": 1,  <br />\"data\": [  <br />{  <br />\"note\": \"Test \",  <br />\"rate\": 4,  <br />\"submitDate\": 1700646353357.0,  <br />\"msgId\": \"4856d456801a1f40460f\",  <br />\"feedbacks\": null,  <br />\"trackingId\": \"ICZNS-aa2f9937665fcc58e23d17a66f2300\",  <br />\"phoneNumber\": \"84932399926\",  <br />\"sentDate\": \"2023-11-22 16:43:35\",  <br />\"idOmniMess\": \"ICOMNI-XXXXXXXXXXXXXXXXXX\",  <br />\"list_param\": {  <br />\"order_date\": \"<strong>*\",  <br />\"customer_name\": \"</strong>*\"  <br />}  <br />}  <br />]  <br />}</td>\n<td><strong>total</strong>: tổng feedback hiện có.  <br /><strong>data</strong>: danh sách các feedback:  <br />- phoneNumber: số điện thoại gửi  <br />- sentDate: ngày gửi  <br />- submitDate: ngày feedback dạng timestamp milisecond  <br />- rate: số sao đánh gía  <br />- note: ghi chú khách hàng nhập vào.  <br />- feedbacks: các option của template khách hàng đã chọn.  <br />-idOmniMess: IdOmniMess đã gửi bằng API SendMessage  <br />-list_param: danh sách biến truyền trong template lúc gửi tin (mỗi tin sẽ có idOmniMess và list_param khác nhau)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniReport","GetRatingResult"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"db53a386-fe2c-40ad-b22b-7660ee54caba"},{"name":"UpdateWebhookEndPoint","id":"7ca0a415-77f0-4db7-bcb6-a1b0dcf19435","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"{{access_token}}"}],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXX\",\r\n    \"password\":\"XXXXXXXX\",\r\n    \"Endpoint\":\"XXXXXXXX\",\r\n    \"Header\":\"XXXXXXXXXX\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://pocsite.incom.vn/api/OmniHook/UpdateWebhookEndPoint","description":"<p>API dùng để cập nhật lại link nhận webhook tài khoản api omni</p>\n<ul>\n<li><p><strong>Endpoint</strong>: đường dẫn link webhook trả dữ liệu.</p>\n</li>\n<li><p><strong>Header</strong>: Header đường dẫn</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>param</strong></th>\n<th><strong>value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Endpoint</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Header</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />Status:\"Success\",  <br />old:{  <br />Endpoint:\"XXXX\",  <br />Header:\"XXXX\"  <br />}  <br />new:{  <br />Endpoint:\"YYYY\"  <br />Header:\"YYYY\"  <br />}  <br />}</td>\n<td>Status: trạng thái sau khi update  <br />+ Success: thành công  <br />+ Fail: thất bại.  <br />Trường hợp Success trả về thêm 2 trường  <br />- old : Gồm Endpoint và Header cũ.  <br />- new: Gồm Endpoint và Header mới update  <br />Trường hợp Fail trả về Desc  <br />Lỗi thất bại</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username và password</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Can't access from this IP</td>\n<td>IP của user không nằm trong whitelist hệ thống</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","OmniHook","UpdateWebhookEndPoint"],"host":["pocsite","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"7ca0a415-77f0-4db7-bcb6-a1b0dcf19435"}],"id":"85e755f7-2050-4e11-89a9-a773843ca185","_postman_id":"85e755f7-2050-4e11-89a9-a773843ca185","description":""},{"name":"Webhook","id":"003aca84-9850-4b12-960f-e6de9f6fc420","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"idOmniMess\":\"XXXXXXXXXX\",\r\n    \"Status\":\"XXXXXXXXXX\",\r\n    \"Channel\":\"\",\r\n    \"ErrorCode\":\"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"<Link hook phía đối tác>","description":"<p>INCOM sẽ trả trạng thái tin thông qua request HTTP POST với các thông tin như sau:</p>\n<h1 id=\"request\">Request:</h1>\n<p>Header: ICOMNI-Signature: &lt;đoạn mã do 2 bên quy định&gt;</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code> Body:\n\n</code></pre><p>{<br />\"idOmniMess\":Chuỗi tiền tố ICOMNI và 30 ký tự,<br />\"Status\":\"trạng thái tin\",<br />\"Channel\":\"string\",<br />\"ErrorCode\":\"string\"<br />}</p>\n<p>Note:</p>\n<p>- Dữ liệu trả về theo từng kênh:</p>\n<p>ZNS:<br />{<br />\"IdOmniMess\": \"ICOMNI-XXXXXXXXXXX\",<br />\"Status\": \"SUCCESS\" ,<br />\"Channel\":\"ZNS\"<br />\"ErrorCode\":\"0\"<br />}</p>\n<p>Trong đó Status trả về trạng thái:<br />\"SUCCESS\": Tin đã được đến zalo thành công<br />\"RECEIVE\": Người dùng đã nhận được tin nhắn zalo<br />\"FAIL\": Thất bại</p>\n<p>Auto Call :<br />{<br />\"IdOmniMess\": \"ICOMNI-XXXXXXXXXXX\",<br />\"Status\": \"SUCCESS\" ,<br />\"Channel\":\"AUTOCALL\",<br />\"ErrorCode\":\"0\"<br />}</p>\n<p>Trong đó Status trả về trạng thái:<br />\"PROCESSING\": Tin đang xử lý<br />\"SUCCESS\": Tin gửi đến máy thành công<br />\"FAIL\": Thất bại</p>\n<p>Brandname SMS:<br />{<br />\"IdOmniMess\": \"ICOMNI-XXXXXXXXXXX\",<br />\"Status\": \"SUCCESS\" ,<br />\"Channel\":\"BRANDNAMESMS\",<br />\"ErrorCode\":\"0\",<br />\"MtCount\" 1,<br />\"TelcoId\" : 1<br />}<br />Trong đó:<br />MtCount: số lượng tin tính tiền,<br />TelcoId: Id của nhà mạng<br />Status trả về trạng thái:<br />\"SUCCESS\": Tin gửi đến máy thành công<br />\"FAIL\": Thất bại</p>\n<p>-Khi status là FAIL sẽ có thêm ErrorCode (mã lỗi) tùy thuộc vào các kênh khác nhau sẽ có mã lỗi khác nhau chi tiết tại link: <a href=\"https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg\">https://docs.google.com/spreadsheets/d/10hfSIx-fFJ6zGzlSdZGKqW5g7VEyzK2iNzjBkTwtZCg</a></p>\n","urlObject":{"host":["<Link hook phía đối tác>"],"query":[],"variable":[]}},"response":[],"_postman_id":"003aca84-9850-4b12-960f-e6de9f6fc420"}],"id":"83870522-3d7e-4447-bd4a-1588101ffee3","description":"<p>API gửi tin đa kênh (OMNI)</p>\n","_postman_id":"83870522-3d7e-4447-bd4a-1588101ffee3"},{"name":"ZNS Follower","item":[{"name":"Send Message Follower","id":"c39fea59-936f-461d-9db8-5e77da0e4059","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXX\",\r\n    \"oaname\":\"INCOM\",\r\n    \"request\":{\r\n         \"recipient\":{\r\n            \"user_id\":\"1234567890\"\r\n        },\r\n        \"message\":{\r\n            \"text\":\"hello, world!\"\r\n        }\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://zns.incom.vn/api/ZNS/MessageFollower","description":"<p>API dùng để gửi tin nhắn từ OA đến 1 userid đã follower OA. INCOM sẽ xác thực và forward request của partner tới Zalo:</p>\n<ul>\n<li>username và password : Tài khoản do INCOM cấp.</li>\n<li>oaname : Tên OA dùng để gửi thông tin đến follower</li>\n<li>request: Thông tin request muốn gửi (Dựa theo tài liệu của Zalo, tùy vào loại muốn gửi sẽ có request khác nhau, tham khảo tài liệu của Zalo)</li>\n</ul>\n<p><a href=\"https://developers.zalo.me/docs/api/official-account-api/gui-tin-va-thong-bao-qua-oa/gui-thong-bao-van-ban-post-5072\">Tài Liệu Trực Tiếp Zalo</a></p>\n","urlObject":{"protocol":"https","path":["api","ZNS","MessageFollower"],"host":["zns","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"c39fea59-936f-461d-9db8-5e77da0e4059"},{"name":"GetFollower","id":"1377d428-dee7-46f0-ba9e-25db2475889a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"XXXXXXXXXXX\",\r\n    \"password\":\"XXXXXXXXXXX\",\r\n    \"oaname\":\"INCOM\",\r\n    \"itemcount\":1,\r\n    \"page\":1\r\n}","options":{"raw":{"language":"json"}}},"url":"https://zns.incom.vn/api/ZNS/GetFollower","description":"<p>API dùng để lấy danh sách ID User Follower theo OA</p>\n<ul>\n<li>username và password : Tài khoản do INCOM cấp.</li>\n<li>oaname: tên OA muốn lấy danh sách follower.</li>\n<li>itemcount: số lượng muốn lấy.</li>\n<li>page: trang muốn lấy.</li>\n</ul>\n<p>Tham khảo: <a href=\"https://developers.zalo.me/docs/api/official-account-api/quan-ly-thong-tin-official-account/lay-danh-sach-nguoi-quan-tam-post-5133\">Tài liệu Zalo</a></p>\n","urlObject":{"protocol":"https","path":["api","ZNS","GetFollower"],"host":["zns","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"1377d428-dee7-46f0-ba9e-25db2475889a"}],"id":"3c9467a1-6b1e-4b41-9338-484669e95d49","description":"<p>API gửi tin đến user ID follower OA</p>\n","_postman_id":"3c9467a1-6b1e-4b41-9338-484669e95d49"},{"name":"SMS QC","item":[{"name":"Send Campaign QC","id":"e477b3eb-9240-4bb2-9692-768b6b99afb2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"Username\":\"xxxxx\",\r\n    \"Password\":\"xxxxxxxxx\",\r\n    \"ListTo\":[\r\n    \"84343775677\",\r\n    \"84789834958\"\r\n],\r\n    \"Brandname\":\"INCOM\",\r\n    \"MessageContent\":\"incom test qc.\",\r\n    \"Schedule\":\"2022/02/16 15:00:00\",\r\n    \"RequestId\":\"TEST1502_002\",\r\n    \"ListTelcoFilter\":[\r\n        1,2,3,11,12\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://ics.incom.vn/api/ApiForCampaign/SendCampaignQCAPI","description":"<p>API gửi đơn hàng SMS QC</p>\n<ul>\n<li><p><strong>Username</strong> và <strong>Password</strong> : do INCOM cung cấp</p>\n</li>\n<li><p><strong>ListTo</strong>: danh sách số điện thoại nhận tin (khuyến cáo dạng chuẫn 84)</p>\n</li>\n<li><p><strong>Brandname</strong>: tên thương hiệu dùng để gửi tin đến số điện thoại</p>\n</li>\n<li><p><strong>MessageContent</strong>: nội dung muốn gửi</p>\n</li>\n<li><p><strong>Schedule</strong>: thời gian hẹn gửi</p>\n</li>\n<li><p><strong>RequestId</strong>: mã đơn hàng (không bắt buộc)</p>\n</li>\n<li><p><strong>ListTelcoFilter</strong>: danh sách telco id muốn gửi (Mobi:1; Vina:2; Viettel:3; Gtel:11; VNM: 12)</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Params</strong></th>\n<th><strong>Value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>ListTo</td>\n<td>List string</td>\n</tr>\n<tr>\n<td>Brandname</td>\n<td>string</td>\n</tr>\n<tr>\n<td>MessageContent</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Schedule</td>\n<td>datetime</td>\n</tr>\n<tr>\n<td>RequestId</td>\n<td>string</td>\n</tr>\n<tr>\n<td>ListTelcoFilter</td>\n<td>List int</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"response\">Response</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>{  <br />\"StatusCode\": \"1\",  <br />\"StatusDesc\": \"Success\",  <br />\"CampaignId\": \"\"  <br />}</td>\n<td>Success: INCOM đã nhận được request gửi tin. Trạng thái sẽ được update ở API GetReportCampaignQC hoặc webhook đăng ký với bên INCOM dựa theo RequestID khi gửi.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Lỗi truyền dữ liệu</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username hoặc password.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" StatusCode \": \"-1\",  <br />\" StatusDesc \": \"RequestID đã tồn tại!\"  <br />}</td>\n<td>RequestID của đơn hàng phải là duy nhất. Bạn đã gửi RequestID này trước đó</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" StatusCode \": \"-2\",  <br />\" StatusDesc \": \"Chưa được cấp quyền gửi brandname này!\"  <br />}</td>\n<td>Bạn chưa được cấp quyền để gửi brandname này. Hãy liên hệ với team cskh để được hổ trợ</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" StatusCode \": \"-3\",  <br />\" StatusDesc \": \"Account chưa được cấp quyền!”  <br />}</td>\n<td>Tài khoản của bạn chưa đủ điều kiện để gửi tin. Vui long liên hệ với team kỹ thuật để được hỗ trọ</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" StatusCode \": \"-4\",  <br />\" StatusDesc \": “Nội dung quảng cáo phải kết thúc bằng dấu chấm !\"  <br />}</td>\n<td>Nội dung đơn hàng Quảng Cáo bắt buộc phải có dấu chấm (.) ở cuối nội dung theo quy định của nhà mạng</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" StatusCode \": \"-5\",  <br />\" StatusDesc \": “Không được phép gửi nội dung Unicode!”  <br />}</td>\n<td>Đơn hàng QC không được phép gửi nội dung có dâu</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" StatusCode \": \"-6\",  <br />\" StatusDesc \": “Không được phép gửi thời gian trong quá khứ!”  <br />}</td>\n<td>Thời gian bạn gửi đang là thời gian trong quá khứ. Vui long kiểm tra lại</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" StatusCode \": \"-7\",  <br />\" StatusDesc \": “Thời gian hẹn gửi phải cách hiện tại ít nhất 2 tiếng!”  <br />}</td>\n<td></td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" StatusCode \": \"-8\",  <br />\" StatusDesc \": “Thời gian hẹn gửi rời vào thời gian chặn tin của nhà mạng!”  <br />}</td>\n<td></td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" StatusCode \": \"-9\",  <br />\" StatusDesc \": “Thời gian tiếp nhận đơn hàng không hợp lệ. Vui lòng tham khảo tài liệu api gửi đơn hàng QC!”  <br />}</td>\n<td></td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" StatusCode \": \"-10\",  <br />\" StatusDesc \": “Danh sách số điện thoại hợp lệ rỗng!”  <br />}</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","ApiForCampaign","SendCampaignQCAPI"],"host":["ics","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"e477b3eb-9240-4bb2-9692-768b6b99afb2"},{"name":"Get Report Campaign QC","id":"37f85c87-feb9-41de-9e53-45c6d72cf72f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"Username\":\"xxxxx\",\r\n    \"Password\":\"xxxxxxxxx\",\r\n    \"CampaignId\":\"yhli6tm436l7bxsaaywo20224281444423\",\r\n    \"RequestId\":\"TEST1502_002\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://ics.incom.vn/api/ApiForCampaign/GetReportCampaignQC","description":"<p>API lấy report campaign QC</p>\n<ul>\n<li><p><strong>Username</strong> và <strong>Password</strong> : do INCOM cung cấp</p>\n</li>\n<li><p><strong>RequestId:</strong> mã đơn hàng KH truyền vào khi sử dụng api Send Campaign QC</p>\n</li>\n<li><p><strong>CampaignId</strong> : mã đơn hàng hệ thống INCOM trả về khi sử dụng api Send Campaign QC</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Params</strong></th>\n<th><strong>Value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Username</td>\n<td>string</td>\n</tr>\n<tr>\n<td>Password</td>\n<td>string</td>\n</tr>\n<tr>\n<td>RequestId</td>\n<td>string</td>\n</tr>\n<tr>\n<td>CampaignId</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response:</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Response</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Lỗi truyền dữ liệu</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Sai username hoặc password.</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" ErrorCode\": \"0\",  <br />\" ErrorDesc \": \"Success\",  <br />\"RequestId\":\"xxxxxxxxxxx\",  <br />\"CampaignId\":\"xxxxxxxxxxx\",  <br />\"Data\":[  <br />{  <br />\"PhoneNumber\": \"84343775677\",  <br />\"TelcoId\": 3,  <br />\"Mt\": 1,  <br />\"Status\": 2,  <br />\"MessageContent\": \"noi dung test.\"  <br />}  <br />]  <br />}</td>\n<td>Success: trả về bạn report của đơn hàng. Trong đó:  <br />- TelcoId: cho biết sđt này thuộc telco nào (1: Mobi, 2: Vina, 3: Viettel, 11: Gtel, 12: VNM)  <br />- Status: Trạng thái tin (1: Thành công, 0: Chưa có report, khác 1 là thất bại)</td>\n</tr>\n<tr>\n<td>200</td>\n<td>{  <br />\" ErrorCode\": \"-1\",  <br />\" ErrorDesc \": \"Không tìm thấy đơn hàng!\"  <br />}</td>\n<td>RequestId/CampaignId không tồn tại</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","ApiForCampaign","GetReportCampaignQC"],"host":["ics","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"37f85c87-feb9-41de-9e53-45c6d72cf72f"}],"id":"9689a8f9-95ad-438f-a5d5-634d647419a7","_postman_id":"9689a8f9-95ad-438f-a5d5-634d647419a7","description":""},{"name":"Voice OTP","item":[{"name":"Send OTP","id":"f122060e-6bba-4d16-abf4-e17850e0b401","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"\",\r\n    \"password\":\"\",\r\n    \"otp\":\"\",\r\n    \"phonenumber\":\"\",\r\n    \"codescript\":\"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://autocall.incom.vn/api/VoiceOTP/SendOTP","description":"<p>API gửi OTP thông qua kênh thoại</p>\n<p>- username và password sẽ được INCOM cấp. Liên hệ với kinh doanh và kỹ thuật để biết rõ hơn.</p>\n<p>- otp : Mã OTP từ 4 đến 8 ký (cho phép cả ký tự chữ &amp; số)</p>\n<p>- phonenumber: số nhận OTP (Khuyến cáo dạng chuẩn 84)</p>\n<p>- codescript: mã kịch bản đọc OTP được bên INCOM cấp</p>\n","urlObject":{"protocol":"https","path":["api","VoiceOTP","SendOTP"],"host":["autocall","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"f122060e-6bba-4d16-abf4-e17850e0b401"},{"name":"Get Status Voice","id":"bf94fd20-e8fe-4601-9d55-b23a97d6acc3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"\",\r\n    \"password\":\"\",\r\n    \"idVoice\":\"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://autocall.incom.vn/api/VoiceOTPReport/GetStatus","description":"<p>API dùng để lấy trạng thái cuộc gọi chủ động</p>\n<p>- username và password sẽ được INCOM cấp. Liên hệ với kinh doanh và kỹ thuật để biết rõ hơn.</p>\n<p>- idVoice: IdVoice nhận dc khi call api Send VoiceOTP</p>\n<p>EndFragment</p>\n","urlObject":{"protocol":"https","path":["api","VoiceOTPReport","GetStatus"],"host":["autocall","incom","vn"],"query":[],"variable":[]}},"response":[],"_postman_id":"bf94fd20-e8fe-4601-9d55-b23a97d6acc3"},{"name":"Webhook","id":"fca0dbc7-824a-42e1-8f34-cd7f43115428","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"caller\":\"\",\r\n    \"duration\":\"\",\r\n    \"timecall\":\"\",\r\n    \"status\":\"\",\r\n    \"voiceid\":\"\",\r\n    \"phonenum\":\"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"<link webhook của khách>","description":"<p>Hệ thống INCOM sẽ thực hiện callback theo url bên khách hàng đã cung cấp theo format bên dưới.</p>\n<ul>\n<li>voiceid : chuỗi ký tự nhận được sau khi thực hiện call API VoiceOTP</li>\n<li>phonenum: số điện thoại nhận OTP</li>\n<li>status:</li>\n</ul>\n<p>+ Fail : thực hiện cuộc gọi thất bại</p>\n<p>+ Answered : đã nhận được trả lời (tính phí có thể dựa vào duration)</p>\n<p>+ Busy : người dùng bận hoặc từ chối cuộc gọi.</p>\n<p>+ No Answered : người dùng k bắt máy</p>\n<ul>\n<li>Duration: thời lượng cuộc gọi.</li>\n<li>Caller: đầu số thực hiện</li>\n<li>Timecall: thời điểm cuộc gọi được thực hiện format (dd-MM-yyyy HH:mm:ss)</li>\n</ul>\n","urlObject":{"host":["<link webhook của khách>"],"query":[],"variable":[]}},"response":[],"_postman_id":"fca0dbc7-824a-42e1-8f34-cd7f43115428"}],"id":"eaa9e0ca-8963-4728-8f4b-445d1e7a3d84","description":"<p>Bộ API dùng để kết nối dịch vụ gửi OTP đến khách hàng thông qua kênh thoại</p>\n","_postman_id":"eaa9e0ca-8963-4728-8f4b-445d1e7a3d84"}]}