API v1 cung cấp giải pháp mở toàn diện cho đại lý và lập trình viên: Tự động khởi tạo Shop Game qua Subdomain hoặc Addon Domain riêng, đăng ký tên miền & tra cứu Whois trực tuyến, đồng bộ số dư thời gian thực.
{
"success": true,
"code": 200,
"service": "VIWEB_PARTNER_API",
"worker_status": "ONLINE",
"version": "1.0.0"
}
Tất cả các API yêu cầu API Key của đối tác để định danh người dùng và trừ tiền dịch vụ. API Key là một chuỗi mã hoá bí mật duy nhất gắn liền với tài khoản của bạn.
{
"success": true,
"code": 200,
"message": "Mô tả kết quả thao tác",
"timestamp": 1794484260,
"data": {
"key": "value"
}
}
{
"success": false,
"code": 422,
"error_code": "INSUFFICIENT_BALANCE",
"message": "Số dư tài khoản không đủ để thanh toán",
"timestamp": 1794484260}
| HTTP Code | Mã lỗi (error_code) | Ý nghĩa & Hướng xử lý |
|---|---|---|
| 200 / 201 | - |
Yêu cầu thành công / Tài nguyên mới được khởi tạo hoàn tất. |
| 401 | API_KEY_REQUIRED / INVALID_API_KEY |
Chưa gửi API Key hoặc Key không đúng/đã bị huỷ đổi mới. |
| 422 | INSUFFICIENT_BALANCE |
Số dư ví Viweb không đủ để trừ tiền đơn hàng. Cần nạp thêm tiền. |
| 422 | VALIDATION_ERROR |
Thiếu tham số bắt buộc hoặc định dạng không hợp lệ (ví dụ tên miền sai). |
| 404 | ORDER_NOT_FOUND / ENDPOINT_NOT_FOUND |
Không tìm thấy mã đơn hàng cần tra cứu hoặc sai đường dẫn API. |
| 500 | SERVER_ERROR |
Lỗi kết nối CSDL hoặc máy chủ nội bộ. Hãy liên hệ admin hỗ trợ. |
Dùng để kiểm tra số dư hiện tại trước khi tạo đơn hàng mới hoặc hiển thị trên bảng điều khiển đại lý.
{
"success": true,
"code": 200,
"message": "Thông tin tài khoản đối tác",
"data": {
"username": "partner_vip",
"email": "partner@viweb.vn",
"balance": 500000,
"total_deposit": 5000000,
"created_at": "2026-01-15 10:20:30"
}
}
Trả về danh sách các đuôi tên miền (TLD) đang mở bán và mức giá theo năm.
{
"success": true,
"code": 200,
"message": "Bảng giá tên miền",
"data": {
"pricing": [
{ "id": 1, "tld": ".com", "price": 280000 },
{ "id": 2, "tld": ".vn", "price": 550000 },
{ "id": 3, "tld": ".net", "price": 290000 }
]
}
}
Kiểm tra tên miền đã có ai đăng ký hay chưa để cho phép khách mua.
{
"success": true,
"code": 200,
"message": "Kết quả kiểm tra tên miền",
"data": {
"domain": "shopgiare.com",
"tld": ".com",
"available": true,
"price_per_year": 280000
}
}
Đăng ký mua tên miền và tự động trừ số dư tài khoản đối tác.
{
"domain": "shopgameacc.com",
"years": 1,
"nameservers": [
"ns1.viweb.vn",
"ns2.viweb.vn"
],
"ip": "103.145.63.12"
}
{
"success": true,
"code": 201,
"message": "Đăng ký mua tên miền thành công",
"data": {
"order_id": 58,
"domain": "shopgameacc.com",
"years": 1,
"amount_charged": 280000,
"status": "xuly"
}
}
Trả về thông tin chi tiết, trạng thái kích hoạt và thời hạn của đơn tên miền `{id}`.
Lấy các mã nguồn shop game đang được hỗ trợ tạo tự động.
{
"success": true,
"code": 200,
"message": "Danh sách mẫu shop game",
"data": {
"templates": [
{
"id": 12,
"name": "Mẫu Shop Bán Acc Free Fire V4",
"price_per_month": 80000,
"image": "https://viweb.vn/anh/demo12.png",
"demo_url": "https://demo12.viweb.vn"
}
]
}
}
Lấy danh sách các domain gốc (ví dụ: `viweb.vn`) để chọn làm đuôi miền cho shop subdomain.
Khởi tạo nhanh shop game chạy dưới tên miền phụ (VD: `accvip.viweb.vn`).
{
"template_id": 12,
"subdomain": "accvip",
"server_id": 1,
"months": 1
}
{
"success": true,
"code": 201,
"message": "Tạo shop subdomain thành công.",
"data": {
"order_id": 1045,
"full_domain": "accvip.viweb.vn",
"amount_charged": 80000,
"status": "xuly"
}
}
Tạo shop game chạy trên tên miền riêng của khách hàng.
{
"template_id": 12,
"domain": "shopaccgiare.com",
"server_id": 1,
"months": 1
}
{
"success": true,
"code": 201,
"message": "Tạo shop addon domain thành công.",
"data": {
"order_id": 1046,
"domain": "shopaccgiare.com",
"amount_charged": 80000,
"status": "xuly",
"note": "Trỏ bản ghi A về IP máy chủ."
}
}
Tiến trình Worker tự động giải nén source, cài CSDL và cấp phát SSL mất khoảng 30 - 90 giây. Gọi API này để kiểm tra xem shop đã sẵn sàng hay chưa.
{
"success": true,
"code": 200,
"message": "Thông tin đơn hàng website",
"data": {
"order": {
"order_id": 1045,
"domain": "accvip.viweb.vn",
"type": "subdomain",
"amount": 80000,
"status": "hoantat",
"note": "Thanh Cong!",
"created_at": "2026-10-18 11:35:00",
"expire_at": "2026-11-18 11:35:00"
}
}
}
<?php
$apiKey = 'YOUR_API_KEY_HERE';
$endpoint = 'https://www.viweb.vn/api/v1/shops/create-subdomain';
$payload = [
'template_id' => 12,
'subdomain' => 'shopvip' . random_int(100, 999),
'server_id' => 1,
'months' => 1,
];
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
'X-API-KEY: ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
print_r($result);
import requests
API_KEY = "YOUR_API_KEY_HERE"
BASE_URL = "https://www.viweb.vn/api/v1"
headers = {
"X-API-KEY": API_KEY,
"Content-Type": "application/json"
}
# 1. Kiểm tra số dư tài khoản
profile = requests.get(f"{BASE_URL}/profile", headers=headers).json()
print("Số dư hiện tại:", profile['data']['balance'])
# 2. Tạo shop game Subdomain
payload = {
"template_id": 12,
"subdomain": "shoptest88",
"server_id": 1,
"months": 1
}
res = requests.post(f"{BASE_URL}/shops/create-subdomain", json=payload, headers=headers).json()
print("Kết quả tạo shop:", res)
const axios = require('axios');
const client = axios.create({
baseURL: 'https://www.viweb.vn/api/v1',
headers: {
'X-API-KEY': 'YOUR_API_KEY_HERE',
'Content-Type': 'application/json'
}
});
async function run() {
try {
const res = await client.post('/shops/create-subdomain', {
template_id: 12,
subdomain: 'gameacc88',
server_id: 1,
months: 1
});
console.log('Tạo shop thành công:', res.data);
} catch (error) {
console.error('Lỗi API:', error.response ? error.response.data : error.message);
}
}
run();
Lệnh tạo shop trả về ngay với mã 201 và status = "xuly". Hệ thống mất 30 - 90s để tạo vhost, SSL và giải nén source ngầm. Bạn nên cấu hình polling mỗi 5-10s gọi vào /shops/order/{id}.
Nếu quá trình cài đặt lỗi do tên miền chưa trỏ hoặc máy chủ gặp sự cố, Worker sẽ tự động chuyển đơn sang trạng thái huy và hoàn tiền ngay 100% vào tài khoản đối tác.
Tuyệt đối không lưu và gửi API Key từ phía Frontend Javascript của trình duyệt người dùng. Mọi cuộc gọi API cần đi qua máy chủ Backend của bạn để bảo mật số dư.