Tài liệu tích hợp API
Một endpoint POST cho toàn bộ thao tác dịch vụ, đơn hàng và số dư. Request gửi API key cùng action; response trả về JSON.
Bắt đầu nhanh
Gửi request POST tới Base URL. API key bắt buộc nằm trong body; Content-Type có thể là application/json hoặc application/x-www-form-urlencoded.
Bảo mật API key
Không đặt key trong frontend, URL, log công khai hoặc mã nguồn. Có thể giới hạn IP và tạo lại key trong Dashboard khi nghi ngờ bị lộ.
- Tài khoản phải bật quyền truy cập API
- API key phải hợp lệ và được gửi trong body
- IP gọi phải nằm trong whitelist nếu tài khoản đã cấu hình
- Số dư và giới hạn dịch vụ được kiểm tra khi tạo đơn
Xác thực
Mỗi request cần key và action. Header X-Api-Key hiện không thay thế trường key bắt buộc trong body.
{
"key": "YOUR_API_KEY",
"action": "services"
}Danh sách dịch vụ
Trả về các dịch vụ đang bật và được phép sử dụng qua API. Giá rate và số dư API sử dụng USD.
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key của tài khoản |
action | string | Có | services |
{
"key": "YOUR_API_KEY",
"action": "services"
}[
{
"service": 51,
"name": "Livestream viewers",
"type": "default",
"category": "Facebook Live",
"rate": 0.2,
"min": 50,
"max": 2000,
"dripfeed": false,
"refill": false
}
]Tạo đơn
Tạo một đơn mới. Quantity phải đồng thời đạt validation chung và Min/Max của dịch vụ.
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key của tài khoản |
action | string | Có | add |
service | integer | Có | ID dịch vụ từ action services |
link | URL | Có | URL công khai cần xử lý |
quantity | integer | Có | Số lượng, phải nằm trong Min/Max |
{
"key": "YOUR_API_KEY",
"action": "add",
"service": 51,
"link": "https://example.com/live",
"quantity": 500
}{
"order": 12345
}Trạng thái đơn
Kiểm tra một đơn thuộc tài khoản của API key.
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key của tài khoản |
action | string | Có | status |
order | integer | Có | ID đơn hàng thuộc tài khoản |
{
"key": "YOUR_API_KEY",
"action": "status",
"order": 12345
}{
"charge": 0.1,
"start_count": 0,
"status": "Processing",
"remains": 500,
"currency": "USD"
}Nhiều đơn
Kiểm tra tối đa 100 mã đơn trong một request, phân cách bằng dấu phẩy.
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key của tài khoản |
action | string | Có | multi |
orders | string | Có | Danh sách ID phân cách dấu phẩy, tối đa 100 đơn |
{
"key": "YOUR_API_KEY",
"action": "multi",
"orders": "12345,12346"
}{
"12345": {
"charge": 0.1,
"status": "Completed",
"remains": 0,
"currency": "USD"
},
"12346": {
"error": "Order not found"
}
}Số dư
Trả về số dư tài khoản theo USD.
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key của tài khoản |
action | string | Có | balance |
{
"key": "YOUR_API_KEY",
"action": "balance"
}{
"balance": 25.5,
"currency": "USD"
}Refill
Chỉ áp dụng cho đơn Completed hoặc Partial của gói có refill và chưa có yêu cầu refill đang chờ.
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key của tài khoản |
action | string | Có | refill |
order | integer | Có | ID đơn hàng thuộc tài khoản |
{
"key": "YOUR_API_KEY",
"action": "refill",
"order": 12345
}{
"refill": 987
}Hủy đơn
Chỉ áp dụng cho đơn Pending, còn phụ thuộc chế độ hủy hệ thống và khả năng cancel của gói/nhà cung cấp.
Chế độ hủy hiện tại: Đang tắt · liên hệ hỗ trợ| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key của tài khoản |
action | string | Có | cancel |
order | integer | Có | ID đơn hàng thuộc tài khoản |
{
"key": "YOUR_API_KEY",
"action": "cancel",
"order": 12345
}{
"order": 12345,
"cancel": true
}Yêu cầu hoàn tiền
Gửi đơn đủ điều kiện vào trạng thái chờ điều tra; đây không phải hoàn tiền tự động.
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
key | string | Có | API key của tài khoản |
action | string | Có | refund |
order | integer | Có | ID đơn hàng thuộc tài khoản |
{
"key": "YOUR_API_KEY",
"action": "refund",
"order": 12345
}{
"order": 12345,
"refund": "pending_review"
}Code mẫu an toàn
Các mẫu dưới đây giữ API key ở phía server. Thay YOUR_API_KEY trước khi chạy và không commit key vào repository.
curl -X POST 'https://tangmatlive.vn/api/v2' \
-H 'Content-Type: application/json' \
-d '{"key":"YOUR_API_KEY","action":"services"}'<?php
$response = Http::asJson()->post('https://tangmatlive.vn/api/v2', [
'key' => env('SMM_API_KEY'),
'action' => 'services',
]);
$data = $response->throw()->json();import os, requests
response = requests.post('https://tangmatlive.vn/api/v2', json={
'key': os.environ['SMM_API_KEY'],
'action': 'services',
}, timeout=30)
response.raise_for_status()
data = response.json()const response = await fetch('https://tangmatlive.vn/api/v2', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
key: process.env.SMM_API_KEY,
action: 'services'
})
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();Mã HTTP và lỗi thường gặp
Lỗi trả về JSON với trường error. Rate limit trả thêm error_code và retry_after.
Request hợp lệ; action có thể trả kết quả hoặc lỗi nghiệp vụ trong JSON.
API key không hợp lệ.
API bị tắt, IP không được phép hoặc cancel đang tắt.
Không tìm thấy đơn thuộc tài khoản.
Thiếu hoặc sai kiểu tham số.
Vượt 60 request/phút; đọc Retry-After trước khi thử lại.
Điều cần nhớ khi tích hợp
- Luôn gọi API từ backend, không gọi trực tiếp từ trình duyệt
- Lấy Min/Max mới từ action services trước khi đặt
- Lưu order ID để đối soát trạng thái
- Không xem refill, cancel hoặc refund là kết quả tự động được bảo đảm
Cần hỗ trợ tích hợp?
Gửi action, thời điểm gọi, mã HTTP và response đã che API key. Không gửi key thật qua nội dung hỗ trợ.
Liên hệ kỹ thuật