Likesub360 API — chuẩn SMM Panel.
Tích hợp Likesub360 vào hệ thống của bạn qua Panel API — tuân thủ chuẩn SMM Panel, chuyển từ panel cũ chỉ cần đổi URL.
Giới thiệuv2
v2 tuân thủ chuẩn SMM Panel quen thuộc — một endpoint duy nhất, form-encoded body, key + action. Mục tiêu là cho phép bạn chuyển từ các panel SMM khác sang Likesub360 mà không sửa code — chỉ đổi domain và key.
Endpoint
likesub360.vn/api/v2
Một endpoint cho mọi action
Method
POST
application/x-www-form-urlencoded
Currency
USD only
Hệ thống tự quy đổi VND ↔ USD
Rate limit
60 / phút
10.000 / ngày mỗi API key
Xác thực
Mọi request gửi key trong body (không phải header). Có thể dùng cùng key với v1 — chỉ cần copy giá trị. Key là chuỗi 40 ký tự base62 không prefix.
key=3kQp7xN2hVfL8mYwB1tRzAcEgUjK5sDoXrM4nPiF&action=balanceMã lỗi
v2 luôn trả HTTP 200 — kể cả khi lỗi. Reseller code expect đúng format này, nên backend không bao giờ ném 4xx/5xx ra. Lỗi được encode trong body:
{ "error": "Thiếu tham số 'service'" }Các thông điệp lỗi thường gặp (tiếng Việt, sinh từ BusinessException phía server):
| Thông điệp | Ý nghĩa |
|---|---|
| API key không hợp lệ | Field key thiếu, sai, hoặc đã bị rotate/revoke. |
| Thiếu tham số 'action' | Body không có field action. |
| Action không hợp lệ: <name> | Action không thuộc 6 action chuẩn (services, balance, add, status, cancel, refill). |
| Thiếu tham số 'service' / 'link' / 'quantity' / 'order' / 'orders' | Field bắt buộc của action đang gọi không có. |
| Tham số '<field>' không hợp lệ | Không parse được sang số nguyên (service, quantity, order). |
| Số dư ví không đủ | Wallet không đủ tiền để hold cho đơn. |
| Không tìm thấy đơn | Order không tồn tại hoặc không thuộc tài khoản của API key. |
| Chỉ có thể yêu cầu bảo hành cho đơn đã hoàn thành | Gọi refill khi đơn chưa ở trạng thái Completed/Partial. |
| Vui lòng chờ đủ 24 giờ kể từ khi đơn hoàn thành… | Đơn phải hoàn thành tối thiểu 24h mới nhận refill (để lượng tương tác ổn định). |
| Đơn đã hết thời hạn bảo hành | Hết warranty window — hoặc gói không hỗ trợ refill. |
| Mỗi đơn chỉ được yêu cầu bảo hành 1 lần / 24 giờ | Đã có refill chạy hoặc vừa hoàn tất trong 24h cho đơn này. |
| Đã vượt giới hạn request | Vượt rate limit 60/phút hoặc 10.000/ngày của API key. |
Action: services
Trả về toàn bộ services (mỗi variant = 1 service). Field service chính là ID bạn dùng cho action=add.
/api/v2 · action=servicesBody parameters
| Field | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key của bạn. |
action | string | Có | Giá trị: services |
Request
curl "https://likesub360.vn/api/v2" \
-X POST \
-d "key=3kQp7xN2hVfL8mYwB1tRzAcEgUjK5sDoXrM4nPiF" \
-d "action=services"Response
[
{
"service": 103, // variantId · integer
"name": "FB Like bài viết — Gói cơ bản",
"type": "Default", // Panel API luôn "Default"
"category": "Gói cơ bản", // tên package
"rate": "0.7778", // USD cho 1000 đơn vị · string 4 decimal
"min": 100, // integer
"max": 50000, // integer
"refill": true,
"cancel": true
}
// ...
]type: "Default" — service-type cần discriminator (REACTIONS, MINUTES) sẽ reject khi gọi add. Reseller nên dùng variant DEFAULT.Action: balance
/api/v2 · action=balanceRequest
curl "https://likesub360.vn/api/v2" \
-d "key=3kQp7xN2hVfL8mYwB1tRzAcEgUjK5sDoXrM4nPiF" \
-d "action=balance"Response
{ "balance": "47.65", "currency": "USD" }balance là số dư khả dụng (đã trừ hold), quy đổi USD theo tỷ giá nội bộ — string 2 chữ số thập phân.
Action: add — tạo đơn
/api/v2 · action=addBody parameters
| Field | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key. |
action | string | Có | add |
service | integer | Có | Service ID (variantId) lấy từ action=services. |
link | string | Có | URL công khai của bài / kênh. |
quantity | integer | Có | Số lượng cần tăng, trong khoảng [min, max]. |
add không idempotent (chuẩn industry — mỗi call tạo đơn mới). Cần idempotency thì dùng v1 với header Idempotency-Key.Request
$post = [
"key" => $key,
"action" => "add",
"service" => 103,
"link" => "https://facebook.com/yourpage/posts/123",
"quantity" => 1000,
];
$ch = curl_init("https://likesub360.vn/api/v2");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($post),
CURLOPT_RETURNTRANSFER => true,
]);
$res = json_decode(curl_exec($ch), true);
// => [ "order" => 48294 ]Response
{ "order": 48294 }{ "error": "Số dư ví không đủ" }Action: status — trạng thái đơn
Cùng một action status phục vụ cả 1 đơn và nhiều đơn — khác nhau ở param:
/api/v2 · action=statusBody parameters
| Field | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key. |
action | string | Có | status |
order | integer | Không | ID 1 đơn (dùng khi không gửi orders). |
orders | string | Không | Danh sách ID phân tách bằng dấu phẩy, ví dụ 48294,48293. Có giá trị thì order bị bỏ qua. |
Truy vấn 1 đơn
curl "https://likesub360.vn/api/v2" \
-d "key=3kQp7xN2hVfL8mYwB1tRzAcEgUjK5sDoXrM4nPiF" \
-d "action=status" \
-d "order=48294"{
"charge": "0.7778", // USD · string 4 decimal
"start_count": 128, // integer
"status": "In progress",
"remains": 358, // integer
"currency": "USD"
}Truy vấn nhiều đơn
curl "https://likesub360.vn/api/v2" \
-d "key=3kQp7xN2hVfL8mYwB1tRzAcEgUjK5sDoXrM4nPiF" \
-d "action=status" \
-d "orders=48294,48293,48295"{
"48294": { "charge": "0.7778", "start_count": 128, "status": "In progress", "remains": 358, "currency": "USD" },
"48293": { "charge": "1.5556", "start_count": 250, "status": "Completed", "remains": 0, "currency": "USD" },
"48295": { "error": "Không tìm thấy đơn" }
}Giá trị status nằm trong: Pending, Processing, In progress, Completed, Partial, Canceled. Đơn FAILED ở v1 được map sang Canceled để giữ tương thích với reseller code chỉ biết 6 status chuẩn.
Action: cancel
/api/v2 · action=cancelYêu cầu huỷ một / nhiều đơn cùng lúc. Action chỉ chuyển trạng thái sang CANCEL_REQUESTED — worker xử lý async (release nếu chưa push, hoặc gọi huỷ phía xử lý). Idempotent.
Body parameters
| Field | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key. |
action | string | Có | cancel |
orders | string | Có | Danh sách ID phân tách bằng dấu phẩy. Phải có ít nhất 1 đơn. |
Request
curl "https://likesub360.vn/api/v2" \
-d "key=3kQp7xN2hVfL8mYwB1tRzAcEgUjK5sDoXrM4nPiF" \
-d "action=cancel" \
-d "orders=48294,48293"Response
[
{ "order": "48294", "cancel": true },
{ "order": "48293", "cancel": { "error": "Không tìm thấy đơn" } }
]"cancel": true. Đơn lỗi (không tồn tại, không thuộc tài khoản, không huỷ được): "cancel": { "error": "..." }. Field order giữ nguyên string từ input.Action: refill
/api/v2 · action=refillYêu cầu chạy bù (bảo hành) cho một / nhiều đơn đã hoàn thành. Hệ thống tạo yêu cầu rồi xử lý async — đơn được chạy bù phần tương tác đã hao hụt. Giống add, action này không idempotent — mỗi call là một yêu cầu mới (server tự chặn trùng bằng các điều kiện bên dưới).
Body parameters
| Field | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key. |
action | string | Có | refill |
order | integer | Không | ID 1 đơn (dùng khi không gửi orders). |
orders | string | Không | Danh sách ID phân tách bằng dấu phẩy, ví dụ 48294,48293. Có giá trị thì order bị bỏ qua. |
Chạy bù 1 đơn
curl "https://likesub360.vn/api/v2" \
-d "key=3kQp7xN2hVfL8mYwB1tRzAcEgUjK5sDoXrM4nPiF" \
-d "action=refill" \
-d "order=48294"{ "refill": true }{ "error": "Vui lòng chờ đủ 24 giờ kể từ khi đơn hoàn thành rồi mới yêu cầu bảo hành" }Chạy bù nhiều đơn
curl "https://likesub360.vn/api/v2" \
-d "key=3kQp7xN2hVfL8mYwB1tRzAcEgUjK5sDoXrM4nPiF" \
-d "action=refill" \
-d "orders=48294,48293"[
{ "order": "48294", "refill": true },
{ "order": "48293", "refill": { "error": "Đơn đã hết thời hạn bảo hành" } }
]"refill": true. Đơn lỗi (chưa đủ 24h, hết bảo hành, không thuộc tài khoản…): "refill": { "error": "..." }. Field order giữ nguyên string từ input.