cURL Nodejs PHP

Giới Thiệu

VietGuys (Công ty Cổ phần Xích Việt) được thành lập vào tháng 06/2007 bởi các thành viên giàu kinh nghiệm, nhiệt huyết với ngành quảng cáo và giải pháp tiếp thị trên điện thoại di động. Trải qua hơn nhiều năm hình thành và phát triển, VietGuys tự hào là một trong các đơn vị tiên phong tại Việt Nam cung cấp các giải pháp Mobile Marketing cho hơn 5.000 nhãn hàng trong và ngoài nước như Pharmacity, Concung, Vietnam Airlines, Thegioididong, CGV, Garena, Grab, Shopee, Samsung, LG,…

VietGuys là một trong số ít các công ty quảng cáo sở hữu chứng chỉ ISO 27001:2013 về An ninh thông tin do tổ chức SGS của Thuỵ Sỹ đánh giá và UKAS cấp chứng nhận. Bên cạnh đó, VietGuys được Bộ Thông Tin - Truyền Thông cấp chứng chỉ hành nghề VNCERT cho lĩnh vực quảng cáo SMS và Email Marketing. VietGuys hiện là thành viên tích cực của Hiệp Hội Mobile Marketing toàn cầu (MMA), là thành viên của Hiệp Hội Thương mại Điện tử Việt Nam (VECOM), Hiệp hội Internet Việt Nam (VIA), và Phòng thương mại Châu u tại Việt Nam (Eurocharm).

GENERATE ACCESS TOKEN

To authorize, use this code:

curl --location 'https://api-v2.vietguys.biz:4438/token/v1/refresh' \
--header 'Refresh-Token: 73465bbc-bfe9-4b3c-8561-a8110e******' \
--header 'Content-Type: application/json' \
--data '{
    "username": "demo_acc",
    "type": "refresh_token"
}'
const axios = require('axios');
let data = JSON.stringify({
  "username": "demo_acc",
  "type": "refresh_token"
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api-v2.vietguys.biz:4438/token/v1/refresh',
  headers: { 
    'Refresh-Token': '73465bbc-bfe9-4b3c-8561-a8110e******', 
    'Content-Type': 'application/json'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api-v2.vietguys.biz:4438/token/v1/refresh',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "username": "demo_acc",
    "type": "refresh_token"
  }',
  CURLOPT_HTTPHEADER => array(
    'Refresh-Token: 73465bbc-bfe9-4b3c-8561-a8110e******',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

If returns JSON structured like this:

  {
    "error": 0,
    "message": "Success",
    "data": {
      "access_token": "xxx",
      "refresh_token": "yyy",
      "expired_at": 1687434087
    } 
  }

#HTTP Request

Method: POST

Endpoint:

UAT https://uat-api.linkvn.org/token/v1/refresh
PRODUCTION https://api-v2.vietguys.biz:4438/token/v1/refresh

Header:

Refresh-Token refresh-token (Cách lấy Refresh-Token)
Content-Type application/json

#Parameters

Tham số Type Required Mô tả
username string Tài khoản người dùng
type string refresh_token

#Response

Params Type Description
error int Mã lỗi trả về, 0 là thành công
message string Mô tả lỗi
data object Nội dung chi tiết của data:
access_token :(string) Mã truy cập
refresh_token :(string) Mã dùng để tạo mới mã truy cập
expired_at :(timestamp) Thời gian hết hạn access token

CODE:

Code Description
0 Thành công
-15 Thông tin xác thực chưa chính xác
-11 Máy chủ bận
-14 Chưa truyền đầy đủ tham số

JSON:

  
    {
    "error": 0,
    "message": "Success",
    "data": {
      "access_token": "xxx",
      "refresh_token": "yyy",
      "expired_at": 1687434087
    } 
  }

  

SMS - Brandname

CSKH

To authorize, use this code:

curl --location --request POST 'https://cloudsms.vietguys.biz:4438/api/index.php' \
  --form 'from=VIETGUYS' \
  --form 'u=your_account' \
  --form 'pwd=your_passcode' \
  --form 'phone=84901234567' \
  --form 'sms=content' \
  --form 'bid=123' \
  --form 'pid=your_pid' \
  --form 'type=0' \
  --form 'json=1' \
var axios = require('axios');
var FormData = require('form-data');
var data = new FormData()
    data.append('from', 'VIETGUYS');
    data.append('u', 'your_account');
    data.append('pwd', 'your_passcode');
    data.append('phone', '84901234567');
    data.append('sms', 'content');
    data.append('bid', '123');
    data.append('pid', 'your_pid');
    data.append('type', '0');
    data.append('json', '1');

var config = {
  method: 'post',
  url: 'https://cloudsms.vietguys.biz:4438/api/index.php',
  headers: {
    ...data.getHeaders()
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://cloudsms.vietguys.biz:4438/api/index.php",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
      'from' => 'VIETGUYS' ,
      'u' => 'your_account' ,
      'pwd' => 'your_passcode' ,
      'phone' => '84901234567' ,
      'sms' => 'content' ,
      'bid' => '123' ,
      'pid' => 'your_pid' ,
      'type' => '0' ,
      'json' => '1' ,
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns CODE or JSON like this:

      -1 : Chưa truyền đầy đủ tham số
      -2 : Máy chủ đang bận
      -3 : Không tìm thấy tài khoản người dùng
      -4 : Tài khoản bị khóa
      -5 : Thông tin xác thực chưa chính xác
      -6 : Chưa kích hoạt tính năng gửi qua API
      -7 : IP bị giới hạn truy cập
      -8 : Tên thương hiệu chưa khai báo
      -9 : Tài khoản hết credits gửi tin
      -10 : Số điện thoại chưa chính xác
      -11 : Số điện thoại nằm trong danh sách từ chối nhận tin
      -13 : Tên thương hiệu chưa khai báo
      -14 : Số kí tự vượt quá 459 kí tự (lỗi tin nhắn dài)
      -16 : Gửi trùng số điện thoại, thương hiệu, nội dung trong 01 phút
      -18 : Nội dung có chứa từ khoá quảng cáo
      -19 : Vượt quá số tin nhắn giớn hạn trong một ngày do kh tự qui định
      -20 : Template chưa được đăng ký
      -21 : Nội dung không phải OTP
      -22 : Lỗi chuyển mạng hoặc brandname chưa được set Telco
      -23 : Chưa set giá bán
      ID : Gửi thành công, mã ID của tin nhắn

If returns JSON structured like this:

{
  "carrier":"mobifone",
  "error":0,
  "msgid":"995.84908176769.1ec857f40850f4b",
  "log":"Gui thanh cong"
}
      error : 0 là thành công, 1 có lỗi phát sinh
      msgid : Mã tin nhắn
      log : Miêu tả lỗi nếu có
      carrier : Nhà mạng của số điện thoại tương ứng
      error_code : Mã lỗi (nếu có, danh sách mã ở bảng trên)

Giới thiệu dịch vụ: Cho phép tích hợp với phần mềm hoặc hệ thống có sẵn để gửi tin nhắn chủ động theo nhu cầu

#HTTP Request

Method: POST

With SSL(recommended): https://cloudsms.vietguys.biz:4438/api/index.php
Without SSL: http://cloudsms.vietguys.biz:8088/api/index.php

#Parameters

Params Type Required Max Length Description
u string Tài khoản người dùng (username)
pwd string Mã bí mật dùng để lập trình (Cách lấy pwd)
from string Tên thương hiệu: 19001511, VIETGUYS,...
phone string Số điện thoại người nhận: 849..., 841...
sms string Nội dung tin nhắn
bid string 50 Mã ID của tin nhắn vào
pid string không 50 Mã chiến dịch
type int không Gửi UNICODE set type = 8 | Không UNICODE set type = 0
json string Trả về kết quả chuỗi json nếu truyền giá trị 1

Số ký tự của bản tin CSKH có dấu - N
(bao gồm cả khoảng trắng)
Số SMS tương ứng
N ≤ 70 01
70 < N ≤ 134 02
134 < N ≤ 201 03

#Response

CODE:

Code Description
-1 Chưa truyền đầy đủ tham số
-2 Máy chủ đang bận
-3 Không tìm thấy tài khoản người dùng
-4 Tài khoản bị khóa
-5 Thông tin xác thực chưa chính xác
-6 Chưa kích hoạt tính năng gửi qua API
-7 IP bị giới hạn truy cập
-8 Tên thương hiệu chưa khai báo
-9 Tài khoản hết credits gửi tin
-10 Số điện thoại chưa chính xác
-11 Số điện thoại nằm trong danh sách từ chối nhận tin
-13 Tên thương hiệu chưa khai báo
-14 Số kí tự vượt quá 459 kí tự (lỗi tin nhắn dài)
-16 Gửi trùng số điện thoại, thương hiệu, nội dung trong 01 phút
-18 Nội dung có chứa từ khoá quảng cáo
-19 Vượt quá số tin nhắn giớn hạn trong một ngày do kh tự qui định
-20 Template chưa được đăng ký
-21 Nội dung không phải OTP
-22 Lỗi chuyển mạng hoặc brandname chưa được set Telco
-23 Chưa set giá bán
ID Gửi thành công, mã ID của tin nhắn

JSON:

  
    {
      "carrier":"mobifone",
      "error":0,
      "msgid":"995.84908176769.1ec857f40850f4b",
      "log":"Gui thanh cong"
    }
  
Code Description
error 0 là thành công, 1 có lỗi phát sinh
msgid Mã tin nhắn
log Miêu tả lỗi nếu có
carrier Nhà mạng của số điện thoại tương ứng
error_code Mã lỗi (nếu có, danh sách mã ở bảng trên)

#Trả kết quả:Sau khi tin nhắn gửi sang nhà mạng, hệ thống sẽ trả lại thông tin cho khách hàng qua giao thức HTTP /GET các tham số như bên dưới.

Method: HTTP / GET
EndPoint: Khách hàng cung cấp

Params Description
msgid ID tin nhắn trả về ở API trên
bid ID tin nhắn tạo bởi khách hàng
status Gửi thành công hay thất bại (sent: thành công, fail: thất bại)
mobile Số điện thoại nhận tin
stampt Thời gian đã gửi tin

Ví dụ 01 mẫu tin:
https://end-point/?msgid=MTA0MQaa5&bid=cb802ae461be&stamp=18042019+15%3A00%3A00&status=sent&mobile=84969555345

CSKH - Webhook

If returns JSON structured like this:

{
  "error": 0,
  "message": "Success",
  "data": {
    "message_id": "1202.84772752531.4c08196556ac5dd",
    "tracking_id": "aa13c709-c288-4af1-8b9c-dfbb29050690",
    "telco": "mobifone",
    "total": 1,
    "status": "sent",
    "timestamp": 1708327029
  }
}
{
  "error": 1,
  "message": "Fail",
  "data": {
    "message_id": "1202.84772752531.124111454544",
    "tracking_id": "aa13c709-c288-4af1-8b9c-d123222",
    "telco": "mobifone",
    "total": 1,
    "status": "fail",
    "timestamp": 1708329955
  }
}

Nhãn hàng cung cấp URL nhận kết quả tin nhắn đến PIC của VGs để cấu hình cho tài khoản. Kết quả tin nhắn sẽ được trả về URL đã cấu hình.

#HTTP Request

Method: POST

Content-Type: application/json

#Parameters

Params Type Description
error int 0 là thành công, 1 là thất bại.
message string Mô tả ngắn gọn về mã lỗi.
data object Thông tin dữ liệu chi tiết:
message_id: (string) Mã tin nhắn được VGs trả về lúc gửi tin.
tracking_id: (string) Mã tin nhắn được sinh ra phía nhãn hàng lúc gửi tin (bid).
telco: (string) Nhà mạng của số điện thoại nhận tin nhắn.
total: (int) Số lượng tin MT (số tin tính tiền thực tế) của tin nhắn.
status: (string) Trạng thái tin nhắn.
timestamp: (int) Thời gian gửi tin nhắn.

Quảng cáo

To authorize, use this code:

curl --location --request POST 'https://qc.vietguys.biz/api/sendsms.php' \
  --form 'phone=84901234567' \
  --form 'from=VIETGUYS' \
  --form 'sms=content' \
  --form 'u=your_account' \
  --form 'pwd=code' \
  --form 'day=yyyy-mm-dd' \
  --form 'bid=your_bid' \
  --form 'time=hh:mm' \
  --form 'json=1' \
  --form 'version=3' \
var axios = require('axios');
var FormData = require('form-data');
var data = new FormData()
    data.append('phone', '84901234567');
    data.append('from', 'VIETGUYS');
    data.append('sms', 'content');
    data.append('u', 'your_account');
    data.append('pwd', 'code');
    data.append('day', 'yyyy-mm-dd');
    data.append('bid', 'your_bid');
    data.append('time', 'hh:mm');
    data.append('json', '1');
    data.append('version', '3');

var config = {
  method: 'post',
  url: 'https://qc.vietguys.biz/api/sendsms.php',
  headers: {
    ...data.getHeaders()
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://qc.vietguys.biz/api/sendsms.php",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
      'phone' => '84901234567' ,
      'from' => 'VIETGUYS' ,
      'sms' => 'content' ,
      'u' => 'your_account' ,
      'pwd' => 'code' ,
      'day' => 'yyyy-mm-dd' ,
      'bid' => 'your_bid' ,
      'time' => 'hh:mm' ,
      'json' => '1' ,
      'version' => '3' ,
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns CODE like this:

  1- Thiếu các thông tin đầu vào
  2- Sai giá trị pwd
  3- Sai giá trị u
  4- Thời gian gửi tin quá khứ, vui lòng chỉnh lại thời gian gửi
  6- Danh sách số điện thoại phải nhiều hơn 10 số
  ID- ID Gửi yêu cầu gửi tin thành công hệ thống sẽ trả về 1 mã ID tương ứng với ID của đợt tin này.

If returns JSON structured like this:

{
  "error":0,
  "id":"qc.1646020450.5641",
  "log":"Gui thanh cong"
}

PHƯƠNG THỨC HOẠT ĐỘNG: các nhà mạng Việt Nam thực hiện gửi tin QC theo tập hợp tối thiểu 100 số điện thoại / 1 nội dung tin nhắn / 1 lần gửi. Do đó, nếu hệ thống của khách hàng có thể gửi tin QC theo phương thức gọi API nhiều số điện thoại 1 lần (tối thiểu 100 số) thì có thể kết nối với hệ thống của VGs theo hướng dẫn

#HTTP Request

Method: POST

Endpoint: https://qc.vietguys.biz/api/sendsms.php

#Parameters

Params Type Required Max Length Description
u string Tài khoản người dùng (username)
pwd string Mã bí mật dùng để lập trình (Cách lấy pwd)
from string Tên người gửi. Vd: VIETGUYS, 6x89,...
phone string Số điện thoại nhận tin, nhiều số điện thoại cách nhau bằng dấu phẩy.
sms string Nội dung tin nhắn cần gửi.
day date không Ngày gửi tin nhắn quảng cáo, định dạng: yyyy-mm-dd (nếu không truyền nghĩa là gửi sớm nhất có thể)
bid string không 50 Mã chiến dịch
time time Giờ gửi tin nhắn quảng cáo, định dạng: hh:mm
json string 1
version int 3

#Response

CODE:

1- Thiếu các thông tin đầu vào
2- Sai giá trị pwd
3- Sai giá trị u
4- Thời gian gửi tin quá khứ, vui lòng chỉnh lại thời gian gửi
6- Danh sách số điện thoại phải nhiều hơn 10 số
ID- ID Gửi yêu cầu gửi tin thành công hệ thống sẽ trả về 1 mã ID tương ứng với ID của đợt tin này.

JSON:

  
    {
      "error":0,
      "id":"qc.1646020450.5641",
      "log":"Gui thanh cong"
    }
  

#Trả kết quả: Sau khi tin nhắn gửi san nhà mạng, hệ thống sẽ trả lại thông tin cho khách hàng qua giao thức HTTP/ POST

Method: HTTP/POST
EndPoint: Khách hàng cung cấp

Params Description
MsgId ID_duoc_tra_ve_khi_gui_goi_tin
Sent 8490111111,8490222222,8490333333
Fail 8495111111,8496222222
ErrMsg Mo ta ket qua

TwoWay

MO

Vietguys gợi ý tham số cho MO api

#HTTP Request

Method: POST

Endpoint: Khách hàng cung cấp

#Parameters

Params Type Required Description
mobile string 84975605***
telco int Telco
shortcode string 60**
message string ABC cd123
message_id string 1234

#Giá trị Telco tương ứng

Value Telco
1 mobifone
2 vinaphone
3 viettel
4 vnm
5 gtel
6 itelecom

MT

Giới thiệu dịch vụ: Cho phép tích hợp với phần mềm hoặc hệ thống có sẵn để gửi tin nhắn chủ động theo nhu cầu.

To authorize, use this code:

curl --location --request POST 'https://cloudsms.vietguys.biz:4438/api/index.php' \
  --form 'from=VIETGUYS' \
  --form 'u=your_account' \
  --form 'pwd=your_passcode' \
  --form 'phone=84901234567' \
  --form 'sms=content' \
  --form 'bid=123' \
  --form 'type=0' \
  --form 'json=1' \
var axios = require('axios');
var FormData = require('form-data');
var data = new FormData()
    data.append('from', 'VIETGUYS');
    data.append('u', 'your_account');
    data.append('pwd', 'your_passcode');
    data.append('phone', '84901234567');
    data.append('sms', 'content');
    data.append('bid', '123');
    data.append('type', '0');
    data.append('json', '1');

var config = {
  method: 'post',
  url: 'https://cloudsms.vietguys.biz:4438/api/index.php',
  headers: {
    ...data.getHeaders()
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://cloudsms.vietguys.biz:4438/api/index.php",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
      'from' => 'VIETGUYS' ,
      'u' => 'your_account' ,
      'pwd' => 'your_passcode' ,
      'phone' => '84901234567' ,
      'sms' => 'content' ,
      'bid' => '123' ,
      'type' => '0' ,
      'json' => '1' ,
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns CODE or JSON like this:

      -1 : Chưa truyền đầy đủ tham số
      -2 : Máy chủ đang bận
      -3 : Không tìm thấy tài khoản người dùng
      -4 : Tài khoản bị khóa
      -5 : Thông tin xác thực chưa chính xác
      -6 : Chưa kích hoạt tính năng gửi qua API
      -7 : IP bị giới hạn truy cập
      -8 : Tên thương hiệu chưa khai báo
      -9 : Tài khoản hết credits gửi tin
      -10 : Số điện thoại chưa chính xác
      -11 : Số điện thoại nằm trong danh sách từ chối nhận tin
      -13 : Tên thương hiệu chưa khai báo
      -14 : Số kí tự vượt quá 459 kí tự (lỗi tin nhắn dài)
      -16 : Gửi trùng số điện thoại, thương hiệu, nội dung trong 01 phút
      -18 : Nội dung có chứa từ khoá quảng cáo
      -19 : Vượt quá số tin nhắn giớn hạn trong một ngày do kh tự qui định
      -20 : Template chưa được đăng ký
      -21 : Nội dung không phải OTP
      -22 : Lỗi chuyển mạng hoặc brandname chưa được set Telco
      -23 : Chưa set giá bán
      ID : Gửi thành công, mã ID của tin nhắn 

If returns JSON structured like this:

[
  {
    "carrier":"mobifone",
    "error":0,
    "msgid":"995.84908176769.1ec857f40850f4b",
    "log":"Gui thanh cong"
  }
]
      error : 0 là thành công, 1 có lỗi phát sinh
      msgid : Mã tin nhắn
      log : Miêu tả lỗi nếu có
      carrier : Nhà mạng của số điện thoại tương ứng
      error_code : Mã lỗi (nếu có, danh sách mã ở bảng trên)

#HTTP Request

Method: POST

With SSL(recommended): https://cloudsms.vietguys.biz:4438/api/index.php
Without SSL: http://cloudsms.vietguys.biz:8088/api/index.php

#Parameters

Params Type Required Max Length Description
u string Tài khoản người dùng (username)
pwd string Mã bí mật dùng để lập trình (Cách lấy pwd)
from string Tên thương hiệu: 19001511, VIETGUYS,...
phone string Số điện thoại người nhận: 849..., 841...
sms string Nội dung tin nhắn
cmd string Mã CMC của từng chương trình campaign tương ứng.
bid string 50 Mã ID của tin nhắn vào
type int không Gửi UNICODE set type = 8 | Không UNICODE set type = 0
json string không Trả về kết quả chuỗi json nếu truyền giá trị 1

#Response

CODE:

Code Description
-1 Chưa truyền đầy đủ tham số
-2 Máy chủ đang bận
-3 Không tìm thấy tài khoản người dùng
-4 Tài khoản bị khóa
-5 Thông tin xác thực chưa chính xác
-6 Chưa kích hoạt tính năng gửi qua API
-7 IP bị giới hạn truy cập
-8 Tên thương hiệu chưa khai báo
-9 Tài khoản hết credits gửi tin
-10 Số điện thoại chưa chính xác
-11 Số điện thoại nằm trong danh sách từ chối nhận tin
-13 Tên thương hiệu chưa khai báo
-14 Số kí tự vượt quá 459 kí tự (lỗi tin nhắn dài)
-16 Gửi trùng số điện thoại, thương hiệu, nội dung trong 01 phút
-18 Nội dung có chứa từ khoá quảng cáo
-19 Vượt quá số tin nhắn giớn hạn trong một ngày do kh tự qui định
-20 Template chưa được đăng ký
-21 Nội dung không phải OTP
-22 Lỗi chuyển mạng hoặc brandname chưa được set Telco
-23 Chưa set giá bán
ID Gửi thành công, mã ID của tin nhắn

JSON:

  
    {
      "carrier":"mobifone",
      "error":0,
      "msgid":"995.84908176769.1ec857f40850f4b",
      "log":"Gui thanh cong"
    }
  
Code Description
error 0 là thành công, 1 có lỗi phát sinh
msgid Mã tin nhắn
log Miêu tả lỗi nếu có
carrier Nhà mạng của số điện thoại tương ứng
error_code Mã lỗi (nếu có, danh sách mã ở bảng trên)

#Trả kết quả:Sau khi tin nhắn gửi sang nhà mạng, hệ thống sẽ trả lại thông tin cho khách hàng qua giao thức HTTP /GET các tham số như bên dưới.

Method: HTTP / GET

Params Description
msgid ID tin nhắn trả về ở API trên
bid ID tin nhắn tạo bởi khách hàng
status Gửi thành công hay thất bại (sent: thành công, fail: thất bại)
mobile Số điện thoại nhận tin
stampt Thời gian đã gửi tin

TopUp

To authorize, use this code:

curl --location --request POST 'https://cloudsms2.vietguys.biz:4438/api/topup/index.php' \
  --form 'u=your_account' \
  --form 'pwd=your_passcode' \
  --form 'phone=84901234567' \
  --form 'tid=123' \
  --form 'amount=500000' \
var axios = require('axios');
var FormData = require('form-data');
var data = new FormData()
    data.append('u', 'your_account');
    data.append('pwd', 'your_passcode');
    data.append('phone', '84901234567');
    data.append('tid', '123');
    data.append('amount', '500000');

var config = {
  method: 'post',
  url: 'https://cloudsms2.vietguys.biz:4438/api/topup/index.php',
  headers: {
    ...data.getHeaders()
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://cloudsms2.vietguys.biz:4438/api/topup/index.php",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
      'u' => 'your_account' ,
      'pwd' => 'your_passcode' ,
      'phone' => '84901234567' ,
      'tid' => '123' ,
      'amount' => '500000' ,
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns CODE or JSON like this:

    00 : Thành công
    01 : Máy chủ Vietguys đang bận
    02 : Chưa nhập đầy đủ các thông tin đầu vào.
    03 : Tài khoản không tồn tại
    04 : Số điện thoại chưa chính xác
    05 : Tài khoản bị khoá.
    06 : Thông tin xác thực chưa chính xác
    07 : Truy vấn từ địa chỉ ip chưa khai báo
    08 : Mệnh giá topup chưa hợp lệ.
    09 : Trùng mã Transaction id (mặc định không kiểm tra, phải báo IT setup)
    10 : Tài khoản hết credit topup
    11 : Vượt quá giới hạn tiền trong ngày
    13 : Sử dụng version cũ
    14 : Mã tid không hợp lệ
    15 : Thông tin failover không hợp lệ

If returns JSON structured like this:

{
  "error": 1,
  "error_code": "08",
  "id": ""
}

WEBHOOK returns code card in Topup FAILED case (json):

  {
    "tid": "id-from-customer",
    "telco": "viettel",
    "code": "abc123",
    "phone": "0975******",
  }

#HTTP Request
Method: POST

With SSL(recommended): https://cloudsms2.vietguys.biz:4438/api/topup/index.php
Without SSL: http://cloudsms2.vietguys.biz:8088/api/topup/index.php

#Parameters

Params Type Required Max Length Description
u string Tài khoản người dùng (username)
pwd string Mã bí mật dùng để lập trình (Cách lấy pwd)
phone string Số điện thoại người dùng, theo chuẩn 8490...
amount string Mệnh giá topup: 10000, 20000, 50000, 100000, 200000, 500000
tid string 200 Transaction id của đối tác, dùng để đối soát. (Bắt buộc)
json int không Trả về kết quả chuỗi json nếu truyền giá trị 1

Response

Code Description
00 Thành công
01 Máy chủ Vietguys đang bận
02 Chưa nhập đầy đủ các thông tin đầu vào.
03 Tài khoản không tồn tại
04 Số điện thoại chưa chính xác
05 Tài khoản bị khoá.
06 Thông tin xác thực chưa chính xác
07 Truy vấn từ địa chỉ ip chưa khai báo
08 Mệnh giá topup chưa hợp lệ.
09 Trùng mã Transaction id (mặc định không kiểm tra, phải báo IT setup)
10 Tài khoản hết credit topup
11 Vượt quá giới hạn tiền trong ngày
13 Sử dụng version cũ
14 Mã tid không hợp lệ
15 Thông tin failover không hợp lệ

#Trạng Thái TopUp

Params Description
2 Đã gửi sang nhà mạng
1 Topup thành công
5 Card thành công
4 Thất bại, lỗi.
3a Đang retry topup sang nhà mạng
3b Đang retry card sang nhà mạng

#WEBHOOK TRẢ KẾT QUẢ TOPUP
Method: GET
EndPoint: Khách hàng cung cấp

Params Description
tid Transaction id của đối tác, dùng để đối soát. (Bắt buộc)
mobile Số điện thoại nhận tin nhắn
telco Nhà mạng
amount Mệnh giá topup
stamp Thời gian đã gửi tin
tstamp Thời gian đã gửi, định dạng unixtimestamp
status Trạng thái tin nhắn

Ví dụ mẫu tin:
https://end-point?tid=O42ARJ9OGI67&mobile=8412345678&telco=vinaphone&amount=50000&stamp=2021-08-24 12:43:40&tstamp=1629783820&status=SUCCESS

#WEBHOOK trả mã thẻ cào TRONG TRƯỜNG HỢP nạp tiền THẤT BẠI (json)

Params Content
tid id-from-customer
telco viettel
code abc123
phone 0975******

OTT

Viber

To authorize, use this code:

curl --location --request POST 'https://cloudsms.vietguys.biz:4438/api/index_ott.php' \
  --form 'u=your_account' \
  --form 'pwd=your_passcode' \
  --form 'phone=84901234567' \
  --form 'bid=your_id' \
  --form 'type=data' \
  --form 'viber=content' \
  --form 'from_viber=Viber_brand' \
  --form 'json=1' \
  --form 'actiontext=text' \
  --form 'actionlink=link' \
  --form 'viberimg=true' \
var axios = require('axios');
var FormData = require('form-data');
var data = new FormData()
    data.append('u', 'your_account');
    data.append('pwd', 'your_passcode');
    data.append('phone', '84901234567');
    data.append('bid', 'your_id');
    data.append('type', 'data');
    data.append('viber', 'content');
    data.append('from_viber', 'Viber_brand');
    data.append('json', '1');
    data.append('actiontext', 'text');
    data.append('actionlink', 'link');
    data.append('viberimg', 'true');

var config = {
  method: 'post',
  url: 'https://cloudsms.vietguys.biz:4438/api/index_ott.php',
  headers: {
    ...data.getHeaders()
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://cloudsms.vietguys.biz:4438/api/index_ott.php",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
      'u' => 'your_account' ,
      'pwd' => 'your_passcode' ,
      'phone' => '84901234567' ,
      'bid' => 'your_id' ,
      'type' => 'data' ,
      'viber' => 'content' ,
      'from_viber' => 'Viber_brand' ,
      'json' => '1' ,
      'actiontext' => 'text' ,
      'actionlink' => 'link' ,
      'viberimg' => 'true' ,
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns CODE or JSON like this:

      -1 : Chưa truyền đầy đủ tham số
      -3 : Không tìm thấy tài khoản người dùng
      -4 : Tài khoản bị khóa
      -7 : IP bị giới hạn truy cập
      -8 : Tên thương hiệu chưa khai báo 
      -10 : Số điện thoại chưa chính xác 

If returns JSON structured like this:

  [
    {
      "error":0,
      "error_code":0,
      "msgid":"9876543.1234567.37d7dd0c5ea6ccf",
      "log":"Gui thanh cong"
    }
  ]
      error : 0 là thành công, 1 có lỗi phát sinh
      error_code : Mã lỗi (nếu có, danh sách mã ở bảng trên)
      msgid : Mã tin nhắn
      log : Miêu tả lỗi nếu có

Giới thiệu dịch vụ: Cho phép tích hợp với phần mềm hoặc hệ thống có sẵn để gửi tin nhắn chủ động theo nhu cầu.

#HTTP Request

Method: POST

With SSL(recommended): https://cloudsms.vietguys.biz:4438/api/index_ott.php
Without SSL: http://cloudsms.vietguys.biz:8088/api/index_ott.php

#Parameters

Params Type Required Max Length Description
u string Tài khoản người dùng (username)
pwd string Mã bí mật dùng để lập trình (Cách lấy pwd)
phone string Số điện thoại người nhận: 849..., 841...
bid string 50 Mã ID của khách hàng tự sinh ra, gửi kèm theo, dùng để đối soát dữ liệu hai bên. (chiều dài không quá 50 kí tự)
viber string Nội dung viber
from_viber string Tên thương hiệu viber.
json int không Trả về kết quả chuỗi json nếu truyền giá trị 1
actiontext string Chữ trên nút Call-to-action
actionlink string Đường dẫn khi nhấn vào nút Call-to-action
viberimg string không Hình ảnh hiển thị bên dưới nội dung

#Response

Code Description
-1 Chưa truyền đầy đủ tham số
-3 Không tìm thấy tài khoản người dùng
-4 Tài khoản bị khóa
-7 IP bị giới hạn truy cập
-8 Tên thương hiệu chưa khai báo
-10 Số điện thoại chưa chính xác

JSON:

  
     {
      "error":0,
      "error_code":0,
      "msgid":"9876543.1234567.37d7dd0c5ea6ccf",
      "log":"Gui thanh cong"
    }
  
Code Description
error 0 là thành công, 1 có lỗi phát sinh
error_code Mã lỗi (nếu có, danh sách mã ở bảng trên)
msgid Mã tin nhắn
log Miêu tả lỗi nếu có

Zalo - ZNS

Zalo

To authorize, use this code:

curl --location 'https://api-v2.vietguys.biz:4438/zalo/v4/send' \
--header 'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******' \
--header 'Content-Type: application/json' \
--data '{
    "username": "demo_acc",
    "mobile": "84975******",
    "tracking_id": "48691e5b-d11c-47ce-a0fe-********",
    "failover": "sms",
    "zns": {
        "oa_id": "4404293319006******",
        "template_id": "202***",
        "template_data": {
            "date": "20/02/2021",
            "customer_name": "Nguyễn Văn A",
            "customer_code": "abc123"
        }
    },
    "sms": {
        "message": "Ma OTP Brandnamecua ban la acb123",
        "brand": "Brandname",
        "unicode": false
    }
}'
const axios = require('axios');
let data = JSON.stringify({
  "username": "demo_acc",
  "mobile": "84975******",
  "tracking_id": "48691e5b-d11c-47ce-a0fe-********",
  "failover": "sms",
  "zns": {
    "oa_id": "4404293319006******",
    "template_id": "202***",
    "template_data": {
      "date": "20/02/2021",
      "customer_name": "Nguyễn Văn A",
      "customer_code": "abc123"
    }
  },
  "sms": {
    "message": "Ma OTP Brandnamecua ban la acb123",
    "brand": "Brandname",
    "unicode": false
  }
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api-v2.vietguys.biz:4438/zalo/v4/send',
  headers: { 
    'Access-Token': '73465bbc-bfe9-4b3c-8561-a8110e******', 
    'Content-Type': 'application/json'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api-v2.vietguys.biz:4438/zalo/v4/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "username": "demo_acc",
    "mobile": "84975******",
    "tracking_id": "48691e5b-d11c-47ce-a0fe-********",
    "failover": "sms",
    "zns": {
        "oa_id": "4404293319006******",
        "template_id": "202***",
        "template_data": {
            "date": "20/02/2021",
            "customer_name": "Nguyễn Văn A",
            "customer_code": "abc123"
        }
    },
    "sms": {
        "message": "Ma OTP Brandnamecua ban la acb123",
        "brand": "Brandname",
        "unicode": false
    }
}',
  CURLOPT_HTTPHEADER => array(
    'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns JSON like this:

  {
    "error": 0,
    "message": "The message is accepted and queued for processing",
    "data": {
      "transaction_id": "5d090fef-eef9-4a62-befd-********",
      "tracking_id": "48691e5b-d11c-47ce-a0fe-********"
    }
  }

Mô tả chung: Mô tả API VietGuys xây dựng để gửi gửi tin Zalo ZNS

Cấp quyền cho ứng dụng gửi tin:
B1: Đăng nhập vào Zalo Official Account
B2: Truy cập vào link bên dưới
https://oauth.zaloapp.com/v4/oa/permission?app_id=2409345169780126679&redirect_uri=https://cloud.vietguys.biz:4438/api/zalo/v2/addPage
B3: Tick chọn vào 'Đồng ý cho phép ứng dụng quản lý Official Account'
B4: Click chọn vào nút 'Đồng ý'

#HTTP Request

UAT https://uat-api.linkvn.org/zalo/v4/send
PRODUCTION https://api-v2.vietguys.biz:4438/zalo/v4/send
Method POST
Content-Type application/json

#Header parameters

Params Type Required Description
Access-Token string access token (Cách lấy Access-Token thông qua Refresh-Token)

#Parameters

Params Type Required
username string Username của tài khoản gửi tin
Ví dụ: “demo_acc”
mobile string Số điện thoại người nhận tin
tracking_id string không 255 Được tạo ở phía người dùng, dùng cho mục đích đối soát và kiểm tra các gói tin gửi đi
zns object Thông tin chi tiết cho ZNS:
oa_id: (string) (có) ID của official account
template_id: (string) (có) ID của template
template_data: (object) (có) Là một object chứa các tham số bắt buộc của zns.template_id
failover string không Kênh sẽ failover nếu số điện thoại không dùng Zalo
Ví dụ: failover : “sms”
sms object tuỳ chọn Nội dung chi tiết của tin nhắn sms:
message: (string)(tuỳ chọn) Nội dung của tin SMS
brand: (string)(tuỳ chọn) Brandname gửi tin SMS
unicode: (string)(tuỳ chọn) Gửi nội dung tiếng việt có dấu

#Response

Params Type Description
error int Mã lỗi 0 là thành công
message string Mô tả ngắn gọn về lỗi đang gặp phải
data object Thông tin chi tiết Data:
transcation_id: (string) Dùng để đối soát các gói tin vừa gửi
tracking_id: (string) Tracking_id vừa gửi ở tham số request

#Mô tả lỗi trả về

error message
0 Gói tin gửi đi đã được duyệt và đang chờ để gửi đi
-11 Máy chủ bận
-14 Chưa truyền đầy đủ tham số
-15 Thông tin xác thực chưa chính xác
-16 Số điện thoại không đúng
-18 Tham số SMS không hợp lệ
-20 Tham số zalo không hợp lệ
-22 Nội dung quá dài
-24 Tên thương hiệu chưa khai báo
-25 Tài khoản hết credits gửi tin
-31 Tham số failover không hợp lệ
-32 Template không hợp lệ
-34 IP truy cập bị giới hạn
429 Quá nhiều yêu cầu trong khoảng thời gian ngắn

Zalo - Webhook

If returns JSON structured like this:

{
  "error": 0,
  "message": "Success",
  "data": {
    "channel": "zalo",
    "msg_status": "SENT",
    "transaction_id": "5d090fef-eef9-4a62-befd--******",
    "tracking_id": "48691e5b-d11c-47ce-a0fe-******"
  }
}
{
  "error": 0,
  "message": "user_received_message",
  "data": {
    "channel": "zalo",
    "msg_status": "DELIVERED",
    "transaction_id": "5d090fef-eef9-4a62-befd-******",
    "tracking_id": "48691e5b-d11c-47ce-a0fe-******"
  }
}
{
  "error": -118,
  "message": "Zalo account not existed",
  "data": {
    "channel": "zalo",
    "msg_status": "FAIL",
    "transaction_id": "d55a0f9d-d34c-445f-9b90-******",
    "tracking_id": "48691e5b-d11c-47ce-a0fe-******"
  }
}

Nhãn hàng cung cấp URL nhận kết quả tin nhắn đến PIC của VGs để cấu hình cho tài khoản. Kết quả tin nhắn sẽ được trả về URL đã cấu hình.

#HTTP Request

Method: POST

Content-Type: application/json

#Parameters

Params Type Description
error int Mã lỗi 0 là thành công
message string Mô tả ngắn gọn về mã lỗi
data object Thông tin dữ liệu chi tiết:
channel: (string) Kênh của gói tin vừa gửi: zalo, sms
msg_status: (string) Trạng thái gói tin: SENT, FAIL, DELIVERED
(Đã gửi, thất bại, đã đến với người nhận)
transaction_id: (string) Transaction ID được trả về sau mỗi lần gửi tin (dùng cho mục đích đối soát)
tracking_id: (string) tracking_id được tạo ở phía người dùng

#Mô tả lỗi trả về

error message
0 Gửi thành công
11 Chưa đúng tham số
12 Tài khoản không hợp lệ
-100 Phát sinh lỗi không xác định
-101 Ứng dụng gửi ZNS không hợp lệ
-102 Ứng dụng gửi ZNS không tồn tại
-103 Ứng dụng gửi ZNS chưa được phê duyệt
-104 Mã secret key không tồn tại
-105 Ứng dụng gửi ZNS chưa liên kết với OA
-106 Phương thức không được hỗ trợ
-107 ID ZNS không hợp lệ
-108 Số điện thoại không hợp lệ
-109 ID mẫu ZNS không hợp lệ
-110 Người dùng chưa cập nhật Zalo phiên bản mới
-111 Mẫu ZNS không có dữ liệu
-112 Dữ liệu mẫu ZNS không hợp lệ
-113 Nút không hợp lệ
-114 Người dùng không nhận được ZNS vì các lý do: Trạng thái tài khoản, Tùy chọn nhận ZNS, Sử dụng Zalo phiên bản cũ, hoặc các lỗi nội bộ khác
-115 Ví không đủ số dư
-116 Nội dung không hợp lệ
-117 OA hoặc ứng dụng gửi ZNS chưa được cấp quyền sử dụng mẫu ZNS này
-118 Số điện thoại chưa đăng ký Zalo hoặc người dùng đã vô hiệu hóa tài khoản hơn 30 ngày
-119 Tài khoản không thể nhận ZNS
-120 OA chưa được cấp quyền sử dụng tính năng này
-121 Mẫu ZNS không có nội dung
-122 Nội dung mẫu ZNS không đúng định dạng json
-123 Không giải mã được nội dung mẫu ZNS
-124 Mã truy cập không hợp lệ
-125 ID OA không hợp lệ
-126 Ví (development mode) không đủ số dư
-127 Template test chỉ có thể được gửi cho admin
-128 Ứng dụng gửi ZNS chưa có mã encoding
-129 Mã encoding không thể được tạo ra
-130 Nội dung mẫu ZNS vượt giới hạn kí tự
-131 Mẫu ZNS chưa được phê duyệt
-132 Tham số không hợp lệ
-133 Không hỗ trợ gửi ZNS trong khung giờ 22h – 6h
-134 Người dùng chưa phản hồi gợi ý nhận ZNS từ OA
-135 OA chưa được cấp quyền gửi ZNS
-136 Ứng dụng gửi ZNS cần được kết nối với ZBA để sử dụng các tính năng trả phí
-137 ZBA kết nối với ứng dụng gửi ZNS này đã hết số dư tài khoản hoặc không thể thanh toán
-138 Ứng dụng gửi ZNS chưa có quyền sử dụng tính năng này
-139 Người dùng đã từ chối nhận loại ZNS này
-140 OA chưa được cấp quyền gửi ZNS hậu mãi cho người dùng này
-141 Người dùng từ chối nhận ZNS từ OA
-142 OA chưa có RSA key, vui lòng gọi API tạo RSA key
-143 OA đã có RSA key, vui lòng gọi API get RSA key
-144 OA đã vượt quá số lượng gửi cho phép trong ngày hôm nay
-145 OA không được phép gửi loại nội dung ZNS này
-146 Mẫu ZNS này đã bị vô hiệu hóa do chất lượng thấp
-147 OA đã vượt quá số lượng gửi cho phép của mẫu ZNS này trong ngày hôm nay
-1471 OA đã vượt giới hạn gửi tin ZNS hậu mãi cho người dùng này trong tháng
-1121 Tham số parameter_name vượt quá ký tự cho phép
-1122 Template data bị thiếu tham số parameter_name
-1123 Không thể khởi tạo QR code
-1124 Tham số parameter_name không hợp lệ
-1441 OA request gửi vượt ngưỡng monthly promotion quota

Zalo - Danh sách Template

To authorize, use this code:

curl --location --request GET 'https://api-v2.vietguys.biz:4438/zalo/v1/template/all?offset=0&limit=100&username=user123&oa_id=6754293319002339871' \
--header 'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******'
var axios = require('axios');

var config = {
  method: 'get',
  url: 'https://api-v2.vietguys.biz:4438/zalo/v1/template/all?offset=0&limit=100&username=user123&oa_id=6754293319002339871',
  headers: {
    'Access-Token': '73465bbc-bfe9-4b3c-8561-a8110e******'
  }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api-v2.vietguys.biz:4438/zalo/v1/template/all?offset=0&limit=100&username=user123&oa_id=6754293319002339871',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns JSON like this:

  {
    "resultCode": 0,
    "resultDesc": "Success",
    "data": [
        {
            "templateId": 202841,
            "templateName": "Mã OTP khách hàng đăng ký/đăng nhập Website VietGuys",
            "createdTime": 0,
            "status": "ENABLE"
        },
        {
            "templateId": 202816,
            "templateName": "Thông báo tư vấn",
            "createdTime": 0,
            "status": "ENABLE"
        }
    ]
  }

Mô tả chung: Lấy danh sách Template

#HTTP Request

Method: GET

Link: https://api-v2.vietguys.biz:4438/zalo/v1/template/all
Access-Token: (Cách lấy Access-Token)

Params Type Required Description
offset int Bắt đầu từ
limit int Giới hạn số lượng template trả về
username string Tên tài khoản được gửi riêng cho mỗi khách hàng
oa_id string ID của official account

Zalo - Dữ liệu mẫu Template

To authorize, use this code:

curl --location --request GET 'https://api-v2.vietguys.biz:4438/zalo/v1/template/detail?template_id=202816&username=user123&oa_id=6754293319002339871' \
--header 'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******'
var axios = require('axios');

var config = {
  method: 'get',
  url: 'https://api-v2.vietguys.biz:4438/zalo/v1/template/detail?template_id=202816&username=user123&oa_id=6754293319002339871',
  headers: {
    'Access-Token': '73465bbc-bfe9-4b3c-8561-a8110e******'
  }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api-v2.vietguys.biz:4438/zalo/v1/template/detail?template_id=202816&username=user123&oa_id=6754293319002339871',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns JSON like this:

  {
    "resultCode": 0,
    "resultDesc": "Success",
    "data": {
        "date": "01/01/1970",
        "customer_name": "customer_name_sample",
        "customer_code": "customer_code_sample"
    }
  }

Mô tả chung: Dữ liệu mẫu Template

#HTTP Request

Method: GET

Link: https://api-v2.vietguys.biz:4438/zalo/v1/template/detail
Access-Token: (Cách lấy Access-Token)

Params Type Required Description
template_id string Mã của Template
username string Tên tài khoản được gửi riêng cho mỗi khách hàng
oa_id string ID của official account

Zalo - Thông tin Template

To authorize, use this code:

curl --location --request GET 'https://api-v2.vietguys.biz:4438/zalo/v1/template/info?template_id=202816&username=user123&oa_id=6754293319002339871' \
--header 'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******'
var axios = require('axios');

var config = {
  method: 'get',
  url: 'https://api-v2.vietguys.biz:4438/zalo/v1/template/info?template_id=202816&username=user123&oa_id=6754293319002339871',
  headers: {
    'Access-Token': '73465bbc-bfe9-4b3c-8561-a8110e******'
  }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api-v2.vietguys.biz:4438/zalo/v1/template/info?template_id=202816&username=user123&oa_id=6754293319002339871',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns JSON like this:

  {
    "resultCode": 0,
    "resultDesc": "Success",
    "data": {
        "templateId": 202816,
        "templateName": "Thông báo tư vấn",
        "status": "ENABLE",
        "listParams": [
            {
                "name": "customer_name",
                "require": true,
                "type": "STRING",
                "maxLength": 30,
                "minLength": 0,
                "acceptNull": false
            },
            {
                "name": "customer_code",
                "require": true,
                "type": "STRING",
                "maxLength": 30,
                "minLength": 0,
                "acceptNull": false
            },
            {
                "name": "date",
                "require": true,
                "type": "DATE",
                "maxLength": 10,
                "minLength": 0,
                "acceptNull": false
            }
        ],
        "timeout": 7200000,
        "previewUrl": "https://zns.oa.zalo.me/znspreview/***74SqJoug0lSyXp9_A-qQ=="
    }
  }

Mô tả chung: Thông tin Template

#HTTP Request

Method: GET

Link: https://api-v2.vietguys.biz:4438/zalo/v1/template/info
Access-Token: (Cách lấy Access-Token)

Params Type Required Description
template_id string Mã của Template
username string Tên tài khoản được gửi riêng cho mỗi khách hàng
oa_id string ID của official account

Zalo - Thông tin rating Template

To authorize, use this code:

curl --location --request GET 'https://cloud.vietguys.biz:4438/api/zalo/v1/template/rating?username=simple1&oa_id=4404293319006178133&template_id=2028162&from_time=1628089324907&to_time=1648189324907&offset=0&limit=100' \
--header 'Authorization: Bearer 73465bbc-bfe9-4b3c-8561-a8110e******'
var axios = require('axios');

var config = {
  method: 'get',
  url: 'https://cloud.vietguys.biz:4438/api/zalo/v1/template/rating?username=simple1&oa_id=4404293319006178133&template_id=2028162&from_time=1628089324907&to_time=1648189324907&offset=0&limit=100',
  headers: {
    'Authorization': 'Bearer 73465bbc-bfe9-4b3c-8561-a8110e******'
  }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://cloud.vietguys.biz:4438/api/zalo/v1/template/rating?username=simple1&oa_id=4404293319006178133&template_id=2028162&from_time=1628089324907&to_time=1648189324907&offset=0&limit=100',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer 73465bbc-bfe9-4b3c-8561-a8110e******'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns JSON like this:

  {
    "resultCode": 0,
    "resultDesc": "Success",
    "data": {
        "total": 3,
        "data": [
            {
                "note": "Tôi rất hài lòng.",
                "rate": 5,
                "submitDate": "1616673095659",
                "msgId": "7e4c33cfc20b05575c18",
                "feedbacks": [
                    "Nhân viên vui vẻ",
                    "Quy trình đơn giản, hiệu quả",
                    "Xử lý nhanh nhẹn",
                    "Tác phong chuyên nghiệp",
                    "Hướng dẫn tận tình"
                ],
                "trackingId": "1956"
            },
            {
                "note": "Phục vụ chưa tốt",
                "rate": 4,
                "submitDate": "1616673164105",
                "msgId": "4da9fb7506b1c1ed98a2",
                "feedbacks": [
                    "Cải thiện thái độ nhân viên",
                    "Xử lý nhanh hơn"
                ],
                "trackingId": "729"
            }
        ]
    }
  }

Mô tả chung: Thông tin rating Template

#HTTP Request

Method: GET

Link: https://cloud.vietguys.biz:4438/api/zalo/v1/template/rating
Token(JWT): {API token sẽ được gửi riêng - dùng chung passcode gửi sms}

Params Type Required Description
template_id string Mã của Template
username string Tên tài khoản được gửi riêng cho mỗi khách hàng
oa_id string ID của official account
from_time long Thời điểm bắt đầu của khoảng thời gian cần lấy dữ liệu được gửi lên hệ thống. Lưu ý: Định dạng timestamp (đơn vị: millisecond).
to_time long Thời điểm kết thúc của khoảng thời gian cần lấy dữ liệu được gửi lên hệ thống. Lưu ý: Định dạng timestamp (đơn vị: millisecond).
offset int Vị trí thứ tự của đánh giá đầu tiên được trả về.
limit int Số lượng đánh giá tối đa được trả về.

Zalo - UID

Tin tư vấn

To authorize, use this code:

curl --location --request POST 'https://api.vietguys.biz:4438/zalo/oa/v2/send' \
--header 'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******' \
--header 'Content-Type: application/json' \
--data-raw '{
  "username": "cdp_demo",
  "oa_id": "44042933190061******",
  "message_type" : "cs",
  "recipient": {
    "user_id": "4404293319006******"
  },
  "message": {
    "text": "Hello, world!"
  }
}'
var axios = require('axios');
var data = JSON.stringify({
  "username": "cdp_demo",
  "oa_id": "44042933190061******",
  "message_type" : "cs",
  "recipient": {
    "user_id": "4404293319006******"
  },
  "message": {
    "text": "Hello, world!"
  }
});
var config = {
  method: 'post',
  url: 'https://api.vietguys.biz:4438/zalo/oa/v2/send',
  headers: {
    'Access-Token': '73465bbc-bfe9-4b3c-8561-a8110e******',
    'Content-Type': 'application/json'
  },
  data: data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.vietguys.biz:4438/zalo/oa/v2/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => '{
    "username": "cdp_demo",
    "oa_id": "44042933190061******",
    "message_type" : "cs",
    "recipient": {
      "user_id": "4404293319006******"
    },
    "message": {
      "text": "Hello, world!"
    }
  }',
  CURLOPT_HTTPHEADER => array(
    'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns JSON like this:

{
  "error": 0,
  "message": "The message is accepted and queued for processing",
  "transaction_id": "c82ffdf6-fa5b-4031-abb6-******"
}

Mô tả chung: Cài đặt tin tư vấn cho Zalo

#HTTP Request

Method: POST

Link: https://api.vietguys.biz:4438/zalo/oa/v2/send
Access-Token: (Cách lấy Access-Token)

Params Type Required Description
username string Tên tài khoản được gửi riêng cho mỗi khách hàng
oa_id string Official Account ID muốn gửi tin
message_type string Gửi tin tư vấn: 'cs'
recipient object Nội dung chi tiết của tin nhắn recipient:
user_id: (int)(tuỳ chọn) ID của người dùng cuối
message object Nội dung chi tiết của tin nhắn message:
text: (string)(tuỳ chọn) Nội dung tin nhắn

#Response

Params Type Description
error int Mã lỗi.
message string Mô tả kết quả trả về.
transaction_id string Transaction id của đối tác, dùng để đối soát.

Tin giao dich

To authorize, use this code:

curl --location --request POST 'https://api.vietguys.biz:4438/zalo/oa/v2/send' \
--header 'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******' \
--header 'Content-Type: application/json' \
--data-raw '{
  "username": "cdp_demo",
  "oa_id": "44042933190061******",
  "message_type" : "transaction",
  "recipient": {
    "user_id": "4404293319006******"
  },
  "message": {
    "attachment": {
      "type": "template",
      "payload": {
        "template_type": "transaction_order",
        "language": "VI",
        "elements": [
          {
            "attachment_id": "a-JJEvLdkcEPxTOwb6gYTfhwm26VSBHjaE3MDfrWedgLyC0smJRiA8w-csdGVg1cdxZLPT1je7k4i8nwbdYrSCJact3NOVGltEUQTjDayIhTvf1zqsR-Ai3aboRERgjvm-cI8iqv-NoIxi0cdNBoE6SYVJooM6xKTBft",
            "type": "banner"
          },
          {
            "type": "header",
            "content": "Trạng thái đơn hàng",
            "align": "left"
          },
          {
            "type": "text",
            "align": "left",
            "content": "• Cảm ơn bạn đã mua hàng tại cửa hàng.<br>• Thông tin đơn hàng của bạn như sau:"
          },
          {
            "type": "table",
            "content": [
              {
                "value": "F-01332973223",
                "key": "Mã khách hàng"
              },
              {
                "style": "yellow",
                "value": "Đang giao",
                "key": "Trạng thái"
              },
              {
                "value": "250,000đ",
                "key": "Giá tiền"
              }
            ]
          },
          {
            "type": "text",
            "align": "center",
            "content": "📱Lưu ý điện thoại. Xin cảm ơn!"
          }
        ],
        "buttons": [
          {
            "title": "Kiểm tra lộ trình - default icon",
            "image_icon": "",
            "type": "oa.open.url",
            "payload": {
              "url": "https://oa.zalo.me/home"
            }
          },
          {
            "title": "Xem lại giỏ hàng",
            "image_icon": "wZ753VDsR4xWEC89zNTsNkGZr1xsPs19vZF22VHtTbxZ8zG9g24u3FXjZrQvQNH2wMl1MhbwT5_oOvX5_szXLB8tZq--TY0Dhp61JRfsAWglCej8ltmg3xC_rqsWAdjRkctG5lXzAGVlQe9BhZ9mJcSYVIDsc7MoPMnQ",
            "type": "oa.query.show",
            "payload": "kiểm tra giỏ hàng"
          },
          {
            "title": "Liên hệ tổng đài",
            "image_icon": "gNf2KPUOTG-ZSqLJaPTl6QTcKqIIXtaEfNP5Kv2NRncWPbDJpC4XIxie20pTYMq5gYv60DsQRHYn9XyVcuzu4_5o21NQbZbCxd087DcJFq7bTmeUq9qwGVie2ahEpZuLg2KDJfJ0Q12c85jAczqtKcSYVGJJ1cZMYtKR",
            "type": "oa.open.phone",
            "payload": {
              "phone_code": "84123456789"
            }
          }
        ]
      }
    }
  }
}'
var axios = require('axios');
var data = JSON.stringify({
  "username": "cdp_demo",
  "oa_id": "44042933190061******",
  "message_type" : "transaction",
  "recipient": {
    "user_id": "4404293319006******"
  },
  "message": {
    "attachment": {
      "type": "template",
      "payload": {
        "template_type": "transaction_order",
        "language": "VI",
        "elements": [
          {
            "attachment_id": "a-JJEvLdkcEPxTOwb6gYTfhwm26VSBHjaE3MDfrWedgLyC0smJRiA8w-csdGVg1cdxZLPT1je7k4i8nwbdYrSCJact3NOVGltEUQTjDayIhTvf1zqsR-Ai3aboRERgjvm-cI8iqv-NoIxi0cdNBoE6SYVJooM6xKTBft",
            "type": "banner"
          },
          {
            "type": "header",
            "content": "Trạng thái đơn hàng",
            "align": "left"
          },
          {
            "type": "text",
            "align": "left",
            "content": "• Cảm ơn bạn đã mua hàng tại cửa hàng.<br>• Thông tin đơn hàng của bạn như sau:"
          },
          {
            "type": "table",
            "content": [
              {
                "value": "F-01332973223",
                "key": "Mã khách hàng"
              },
              {
                "style": "yellow",
                "value": "Đang giao",
                "key": "Trạng thái"
              },
              {
                "value": "250,000đ",
                "key": "Giá tiền"
              }
            ]
          },
          {
            "type": "text",
            "align": "center",
            "content": "📱Lưu ý điện thoại. Xin cảm ơn!"
          }
        ],
        "buttons": [
          {
            "title": "Kiểm tra lộ trình - default icon",
            "image_icon": "",
            "type": "oa.open.url",
            "payload": {
              "url": "https://oa.zalo.me/home"
            }
          },
          {
            "title": "Xem lại giỏ hàng",
            "image_icon": "wZ753VDsR4xWEC89zNTsNkGZr1xsPs19vZF22VHtTbxZ8zG9g24u3FXjZrQvQNH2wMl1MhbwT5_oOvX5_szXLB8tZq--TY0Dhp61JRfsAWglCej8ltmg3xC_rqsWAdjRkctG5lXzAGVlQe9BhZ9mJcSYVIDsc7MoPMnQ",
            "type": "oa.query.show",
            "payload": "kiểm tra giỏ hàng"
          },
          {
            "title": "Liên hệ tổng đài",
            "image_icon": "gNf2KPUOTG-ZSqLJaPTl6QTcKqIIXtaEfNP5Kv2NRncWPbDJpC4XIxie20pTYMq5gYv60DsQRHYn9XyVcuzu4_5o21NQbZbCxd087DcJFq7bTmeUq9qwGVie2ahEpZuLg2KDJfJ0Q12c85jAczqtKcSYVGJJ1cZMYtKR",
            "type": "oa.open.phone",
            "payload": {
              "phone_code": "84123456789"
            }
          }
        ]
      }
    }
  }
});
var config = {
  method: 'post',
  url: 'https://api.vietguys.biz:4438/zalo/oa/v2/send',
  headers: {
    'Access-Token': '73465bbc-bfe9-4b3c-8561-a8110e******',
    'Content-Type': 'application/json'
  },
  data: data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.vietguys.biz:4438/zalo/oa/v2/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => '{
    "username": "cdp_demo",
    "oa_id": "44042933190061******",
    "message_type" : "transaction",
    "recipient": {
      "user_id": "4404293319006******"
    },
    "message": {
      "attachment": {
        "type": "template",
        "payload": {
          "template_type": "transaction_order",
          "language": "VI",
          "elements": [
            {
              "attachment_id": "a-JJEvLdkcEPxTOwb6gYTfhwm26VSBHjaE3MDfrWedgLyC0smJRiA8w-csdGVg1cdxZLPT1je7k4i8nwbdYrSCJact3NOVGltEUQTjDayIhTvf1zqsR-Ai3aboRERgjvm-cI8iqv-NoIxi0cdNBoE6SYVJooM6xKTBft",
              "type": "banner"
            },
            {
              "type": "header",
              "content": "Trạng thái đơn hàng",
              "align": "left"
            },
            {
              "type": "text",
              "align": "left",
              "content": "• Cảm ơn bạn đã mua hàng tại cửa hàng.<br>• Thông tin đơn hàng của bạn như sau:"
            },
            {
              "type": "table",
              "content": [
                {
                  "value": "F-01332973223",
                  "key": "Mã khách hàng"
                },
                {
                  "style": "yellow",
                  "value": "Đang giao",
                  "key": "Trạng thái"
                },
                {
                  "value": "250,000đ",
                  "key": "Giá tiền"
                }
              ]
            },
            {
              "type": "text",
              "align": "center",
              "content": "📱Lưu ý điện thoại. Xin cảm ơn!"
            }
          ],
          "buttons": [
            {
              "title": "Kiểm tra lộ trình - default icon",
              "image_icon": "",
              "type": "oa.open.url",
              "payload": {
                "url": "https://oa.zalo.me/home"
              }
            },
            {
              "title": "Xem lại giỏ hàng",
              "image_icon": "wZ753VDsR4xWEC89zNTsNkGZr1xsPs19vZF22VHtTbxZ8zG9g24u3FXjZrQvQNH2wMl1MhbwT5_oOvX5_szXLB8tZq--TY0Dhp61JRfsAWglCej8ltmg3xC_rqsWAdjRkctG5lXzAGVlQe9BhZ9mJcSYVIDsc7MoPMnQ",
              "type": "oa.query.show",
              "payload": "kiểm tra giỏ hàng"
            },
            {
              "title": "Liên hệ tổng đài",
              "image_icon": "gNf2KPUOTG-ZSqLJaPTl6QTcKqIIXtaEfNP5Kv2NRncWPbDJpC4XIxie20pTYMq5gYv60DsQRHYn9XyVcuzu4_5o21NQbZbCxd087DcJFq7bTmeUq9qwGVie2ahEpZuLg2KDJfJ0Q12c85jAczqtKcSYVGJJ1cZMYtKR",
              "type": "oa.open.phone",
              "payload": {
                "phone_code": "84123456789"
              }
            }
          ]
        }
      }
    }
  }',
  CURLOPT_HTTPHEADER => array(
    'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns JSON like this:

{
  "error": 0,
  "message": "The message is accepted and queued for processing",
  "transaction_id": "c82ffdf6-fa5b-4031-abb6-******"
}

Mô tả chung: Cài đặt tin giao dich cho Zalo

#HTTP Request

Method: POST

Link: https://api.vietguys.biz:4438/zalo/oa/v2/send
Access-Token: (Cách lấy Access-Token)

Params Type Required Description
username string Tên tài khoản được gửi riêng cho mỗi khách hàng
oa_id string Official Account ID muốn gửi tin
message_type string Gửi tin giao dịch: 'transaction'
recipient object Nội dung chi tiết của tin nhắn recipient:
user_id: (int)(tuỳ chọn) ID của người dùng cuối
message object

#Response

Params Type Description
error int Mã lỗi.
message string Mô tả kết quả trả về.
transaction_id string Transaction id của đối tác, dùng để đối soát.

Tin truyền thông cá nhân

To authorize, use this code:

curl --location --request POST 'https://api.vietguys.biz:4438/zalo/oa/v2/send' \
--header 'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******' \
--header 'Content-Type: application/json' \
--data-raw '{
  "username": "cdp_demo",
  "oa_id": "44042933190061******",
  "message_type": "promotion",
  "recipient": {
    "user_id": "4404293319006******"
  },
  "message": {
    "attachment": {
      "type": "template",
      "payload": {
      "template_type": "promotion",
        "elements": [
          {
            "attachment_id": "aERC3A0iYGgQxim8fYIK6fxzsXkaFfq7ZFRB3RCyZH6RyziRis3RNydebK3iSPCJX_cJ3k1nW1EQufjN_pUL1f6Ypq3rTef5nxp6H_HnXKFDiyD5y762HS-baqRpQe5FdA376lTfq1sRyPr8ypd74ecbaLyA-tGmuJ-97W",
            "type": "banner"
          },
          {
            "type": "header",
            "content": "💥💥Ưu đãi thành viên Platinum💥💥"
          },
          {
            "type": "text",
            "align": "left",
            "content": "Ưu đãi dành riêng cho khách hàng Nguyen Van A hạng thẻ Platinum<br>Voucher trị giá 150$"
          },
          {
            "type": "table",
            "content": [
              {
                "value": "VC09279222",
                "key": "Voucher"
              },
              {
                "value": "30/12/2023",
                "key": "Hạn sử dụng"
              }
            ]
          },
          {
            "type": "text",
            "align": "center",
            "content": "Áp dụng tất cả cửa hàng trên toàn quốc"
          }
        ],
        "buttons": [
          {
            "title": "Tham khảo chương trình",
            "image_icon": "",
            "type": "oa.open.url",
            "payload": {
              "url": "https://oa.zalo.me/home"
            }
          },
          {
            "title": "Liên hệ chăm sóc viên",
            "image_icon": "aeqg9SYn3nIUYYeWohGI1fYRF3V9f0GHceig8Ckq4WQVcpmWb-9SL8JLPt-6gX0QbTCfSuQv40UEst1imAm53CwFPsQ1jq9MsOnlQe6rIrZOYcrlWBTAKy_UQsV9vnfGozCuOvFfIbN5rcXddFKM4sSYVM0D50I9eWy3",
            "type": "oa.query.hide",
            "payload": "#tuvan"
          }
        ]
      }
    }
  }
}'
var axios = require('axios');
var data = JSON.stringify({
  "username": "cdp_demo",
  "oa_id": "44042933190061******",
  "message_type": "promotion",
  "recipient": {
    "user_id": "4404293319006******"
  },
  "message": {
    "attachment": {
      "type": "template",
      "payload": {
      "template_type": "promotion",
        "elements": [
          {
            "attachment_id": "aERC3A0iYGgQxim8fYIK6fxzsXkaFfq7ZFRB3RCyZH6RyziRis3RNydebK3iSPCJX_cJ3k1nW1EQufjN_pUL1f6Ypq3rTef5nxp6H_HnXKFDiyD5y762HS-baqRpQe5FdA376lTfq1sRyPr8ypd74ecbaLyA-tGmuJ-97W",
            "type": "banner"
          },
          {
            "type": "header",
            "content": "💥💥Ưu đãi thành viên Platinum💥💥"
          },
          {
            "type": "text",
            "align": "left",
            "content": "Ưu đãi dành riêng cho khách hàng Nguyen Van A hạng thẻ Platinum<br>Voucher trị giá 150$"
          },
          {
            "type": "table",
            "content": [
              {
                "value": "VC09279222",
                "key": "Voucher"
              },
              {
                "value": "30/12/2023",
                "key": "Hạn sử dụng"
              }
            ]
          },
          {
            "type": "text",
            "align": "center",
            "content": "Áp dụng tất cả cửa hàng trên toàn quốc"
          }
        ],
        "buttons": [
          {
            "title": "Tham khảo chương trình",
            "image_icon": "",
            "type": "oa.open.url",
            "payload": {
              "url": "https://oa.zalo.me/home"
            }
          },
          {
            "title": "Liên hệ chăm sóc viên",
            "image_icon": "aeqg9SYn3nIUYYeWohGI1fYRF3V9f0GHceig8Ckq4WQVcpmWb-9SL8JLPt-6gX0QbTCfSuQv40UEst1imAm53CwFPsQ1jq9MsOnlQe6rIrZOYcrlWBTAKy_UQsV9vnfGozCuOvFfIbN5rcXddFKM4sSYVM0D50I9eWy3",
            "type": "oa.query.hide",
            "payload": "#tuvan"
          }
        ]
      }
    }
  }
});
var config = {
  method: 'post',
  url: 'https://api.vietguys.biz:4438/zalo/oa/v2/send',
  headers: {
    'Access-Token': '73465bbc-bfe9-4b3c-8561-a8110e******',
    'Content-Type': 'application/json'
  },
  data: data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.vietguys.biz:4438/zalo/oa/v2/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => '{
    "username": "cdp_demo",
    "oa_id": "44042933190061******",
    "message_type": "promotion",
    "recipient": {
      "user_id": "4404293319006******"
    },
    "message": {
      "attachment": {
        "type": "template",
        "payload": {
        "template_type": "promotion",
          "elements": [
            {
              "attachment_id": "aERC3A0iYGgQxim8fYIK6fxzsXkaFfq7ZFRB3RCyZH6RyziRis3RNydebK3iSPCJX_cJ3k1nW1EQufjN_pUL1f6Ypq3rTef5nxp6H_HnXKFDiyD5y762HS-baqRpQe5FdA376lTfq1sRyPr8ypd74ecbaLyA-tGmuJ-97W",
              "type": "banner"
            },
            {
              "type": "header",
              "content": "💥💥Ưu đãi thành viên Platinum💥💥"
            },
            {
              "type": "text",
              "align": "left",
              "content": "Ưu đãi dành riêng cho khách hàng Nguyen Van A hạng thẻ Platinum<br>Voucher trị giá 150$"
            },
            {
              "type": "table",
              "content": [
                {
                  "value": "VC09279222",
                  "key": "Voucher"
                },
                {
                  "value": "30/12/2023",
                  "key": "Hạn sử dụng"
                }
              ]
            },
            {
              "type": "text",
              "align": "center",
              "content": "Áp dụng tất cả cửa hàng trên toàn quốc"
            }
          ],
          "buttons": [
            {
              "title": "Tham khảo chương trình",
              "image_icon": "",
              "type": "oa.open.url",
              "payload": {
                "url": "https://oa.zalo.me/home"
              }
            },
            {
              "title": "Liên hệ chăm sóc viên",
              "image_icon": "aeqg9SYn3nIUYYeWohGI1fYRF3V9f0GHceig8Ckq4WQVcpmWb-9SL8JLPt-6gX0QbTCfSuQv40UEst1imAm53CwFPsQ1jq9MsOnlQe6rIrZOYcrlWBTAKy_UQsV9vnfGozCuOvFfIbN5rcXddFKM4sSYVM0D50I9eWy3",
              "type": "oa.query.hide",
              "payload": "#tuvan"
            }
          ]
        }
      }
    }
  }',
  CURLOPT_HTTPHEADER => array(
    'Access-Token: 73465bbc-bfe9-4b3c-8561-a8110e******',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

The above command returns JSON like this:

{
  "error": 0,
  "message": "The message is accepted and queued for processing",
  "transaction_id": "c82ffdf6-fa5b-4031-abb6-******"
}

Mô tả chung: Cài đặt tin truyền thông cá nhân cho Zalo

#HTTP Request

Method: POST

Link: https://api.vietguys.biz:4438/zalo/oa/v2/send
Access-Token: (Cách lấy Access-Token)

Params Type Required Description
username string Tên tài khoản được gửi riêng cho mỗi khách hàng
oa_id string Official Account ID muốn gửi tin
message_type string Gửi tin truyền thông cá nhân: 'promotion'
recipient object Nội dung chi tiết của tin nhắn recipient:
user_id: (int)(tuỳ chọn) ID của người dùng cuối
message object

#Response

Params Type Description
error int Mã lỗi.
message string Mô tả kết quả trả về.
transaction_id string Transaction id của đối tác, dùng để đối soát.

SMPP

MÔ TẢ:

Tài liệu này cung cấp tài liệu tham khảo cho tất cả các tính năng có sẵn qua giao diện VietGuys SMPP để gửi SMS. SMPP được coi là tiêu chuẩn ngành để gửi SMS đến các nhà cung cấp Mạng và là giao thức gốc của chúng tôi.

Tin nhắn ngắn ngang hàng (SMPP) là một giao thức được ngành viễn thông sử dụng để trao đổi tin nhắn SMS giữa các Trung tâm Dịch vụ Tin nhắn Ngắn (SMSC) và / hoặc các Đơn vị Tin nhắn Ngắn Bên ngoài (ESME).

Giao thức này là giao thức TCP / IP cấp 7, cho phép gửi tin nhắn SMS nhanh chóng.

Các phiên bản được sử dụng phổ biến nhất của SMPP là v3.3, tiêu chuẩn được hỗ trợ rộng rãi nhất và v3.4, bổ sung thêm hỗ trợ thu phát (các kết nối đơn lẻ có thể gửi và nhận tin nhắn). Trao đổi dữ liệu có thể là đồng bộ, trong đó mỗi đồng đẳng phải đợi phản hồi cho mỗi PDU được gửi đi và không đồng bộ, nơi nhiều yêu cầu có thể được đưa ra trong một lần và được đồng đẳng kia thừa nhận theo thứ tự nghiêng.

TÍNH NĂNG:

Params Description
IP/DOMAIN smpp02.vietguys.biz
PORT SSL: 9091 (recommended)
Without SSL: 5000
SYSTEM ID VietGuys SMPP Username
PASSWORD VietGuys SMPP Password
SYSTEM TYPE SMS
CONNECTION TYPE Transmitter
OPTIONS Transmitter bind (TX)

BẢNG MÃ LỖI:

Params Type Description
1 Error ESME_RINVMSGLEN Độ dài tin nhắn không hợp lệ
2 Error ESME_RINVCMDLEN Độ dài lệnh không hợp lệ
3 Error ESME_RINVCMDID ID lệnh không hợp lệ
4 Error ESME_RINVBNDSTS BIND không đúng
5 Error ESME_RALYBND ESME Đã ở trạng thái giới hạn
10 Error ESME_RINVSRCADR Địa chỉ nguồn không hợp lệ
11 Error ESME_RINVDSTADR Địa chỉ đích không hợp lệ
12 Error ESME_RINVMSGID Message ID không hợp lệ
13 Error ESME_RBINDFAIL Đánh dáu thất bại
14 Error ESME_RINVPASWD Mật khẩu không hợp lệ
69 Error ESME_RSUBMITFAIL Gửi SM thất bại
88 Error ESME_RTHROTTLED Vượt quá giới hạn tin nhắn cho phép
102 Error Điểm đến không được đề cập hoặc tiền tố không xác định
400 Timeout Gửi tin nhắn đã hết thời gian chờ.
401 System Error Hệ thống tạm thời bị vô hiệu hóa
402 No Response Không có phản hồi từ VietGuys SMS Gateway

# Hướng dẫn lấy passcode

  1. Login to https://ai.vietguys.biz/
  2. Click to Username (Góc phải trên cùng màn hình)
  3. Click to Profile (Hồ sơ)
  4. Click to Setting (Cài đặt) "Pwd" inside Token Field

Hướng dẫn lấy refresh token

  1. Đăng nhập vào https://ai.vietguys.biz
  2. Bấm vào Tên người dùng (Góc trên bên phải màn hình)
  3. Bấm vào Hồ sơ (Profile)
  4. Bấm vào Settings V4