SMM Velox · API V1
Tài liệu API
Kết nối website của bạn với danh mục, ví VND và đơn hàng SMM Velox qua API.
Bắt đầu kết nối
POST · VND · HTTPSGửi key/action trong body application/x-www-form-urlencoded hoặc JSON. Không nhận query trên URL. Production bắt buộc HTTPS. GET không hỗ trợ. Ví dụ chỉ dùng dữ liệu minh họa.
Địa chỉ API
https://smmvelox.com/api/v2curl -X POST 'https://smmvelox.com/api/v2' \
--data-urlencode 'key=YOUR_API_KEY' \
--data-urlencode 'action=add' \
--data-urlencode 'service=123' \
--data-urlencode 'link=https://example.com/post' \
--data-urlencode 'quantity=1000' \
--data-urlencode 'client_order_id=YOUR_UNIQUE_ORDER_ID' \
--data-urlencode 'max_charge=11550'Xác thực API Key
Giữ key bí mật, chỉ gửi trong body. Không đưa vào URL, mã frontend hoặc chia sẻ cho người khác. Thay/thu hồi key có hiệu lực ngay. Tài khoản phải hoạt động và xác minh email.
API Key chỉ được gửi qua HTTPS trong phần thân POST; không đưa key vào URL hoặc mã phía trình duyệt.
API luôn báo giá và thanh toán bằng VND. USD trên giao diện chỉ để tham khảo.
Danh sách dịch vụ
V1 chỉ công bố Default có mapping/đơn vị đã xác minh: rate là VND / 1.000 lượt; charge = rate × quantity / 1.000. service là ID nội bộ tương ứng DV-ID; order là chuỗi ID đơn nội bộ ổn định. Không trả ID nguồn. Tiền dùng chuỗi decimal chính xác tối đa 12 chữ số lẻ.
key=YOUR_API_KEY&action=services[
{
"service": 123,
"name": "Example",
"desc": "",
"type": "Default",
"category": "Facebook",
"platform": "facebook",
"rate": "11550.000000000000",
"rate_unit": "per_1000",
"min": "100",
"max": "100000",
"refill": false,
"cancel": false,
"dripfeed": false,
"currency": "VND"
}
]Kiểm tra số dư
API luôn báo giá và thanh toán bằng VND. USD trên giao diện chỉ để tham khảo.
key=YOUR_API_KEY&action=balance{
"balance": "100000.000000000001",
"currency": "VND"
}Tạo đơn hàng
add yêu cầu service nguyên dương, link URL http/https tối đa 2.000 ký tự, quantity nguyên trong min/max. Không nhận price/rate/discount/currency/user_id/status/provider hoặc trường ngoài contract. Batch status tối đa 100 ID.
| Tham số | Yêu cầu | Ý nghĩa |
|---|---|---|
| key | Bắt buộc | Khóa API của tài khoản |
| action | Bắt buộc | Giá trị add |
| service | Bắt buộc | ID dịch vụ trong danh mục API |
| link | Bắt buộc | Liên kết http/https đến nội dung cần xử lý |
| quantity | Bắt buộc | Số lượng nguyên trong min/max |
| client_order_id | Tùy chọn | Mã duy nhất theo tài khoản giúp tránh đặt trùng |
| idempotency_key | Tùy chọn | Tên thay thế cho client_order_id; chỉ gửi một trong hai, không gửi cả hai |
| max_charge | Tùy chọn | Mức phí tối đa được chấp nhận (chuỗi VND), không phải giá tự đặt |
key=YOUR_API_KEY&action=add&service=123&link=https://example.com/post&quantity=1000&client_order_id=YOUR_UNIQUE_ORDER_ID{
"order": "456"
}Trạng thái một đơn
Trạng thái Pending/Processing/In progress/Completed/Partial/Canceled dựa trên bằng chứng. Đơn review/chưa rõ trả Pending và review_required=true. start_count/remains là null khi thiếu bằng chứng, không giả 0. charge lấy snapshot đã trả.
key=YOUR_API_KEY&action=status&order=456{
"charge": "11550",
"status": "Pending",
"start_count": null,
"remains": null,
"currency": "VND",
"review_required": false
}Trạng thái nhiều đơn
Trả kết quả dạng đối tượng theo từng ID; ID không tồn tại có lỗi riêng. Tối đa 100 ID mỗi lần.
key=YOUR_API_KEY&action=status&orders=456,999{
"456": {
"charge": "11550",
"status": "Pending",
"start_count": null,
"remains": null,
"currency": "VND",
"review_required": false
},
"999": {
"error": "Incorrect order ID"
}
}Thao tác chưa hỗ trợ
Package/per_unit, custom comments, subscriptions, dripfeed chưa hỗ trợ và bị ẩn. cancel/refill/refill_status trả HTTP 400 Action is not supported; không đổi trạng thái hoặc tự hoàn tiền. Các cờ cancel/refill/dripfeed luôn false ở V1.
key=YOUR_API_KEY&action=cancel{
"error": "Action is not supported"
}Quy tắc đặt đơn và trạng thái
Nên gửi client_order_id (hoặc idempotency_key), 1–64 ký tự A–Z/a–z/0–9/_.:-, duy nhất trong tài khoản. Cùng mã và cùng service/link/quantity/max_charge trả đơn cũ; đổi nội dung trả 409. max_charge tùy chọn là chuỗi trần VND, không quyết định giá bán.
Không gửi mã phía khách: mỗi add hợp lệ tạo đơn mới dù nội dung giống hệt. Khi timeout, không tự gửi lại mù quáng; không bảo đảm exactly-once nếu thiếu mã yêu cầu.
Giá API được tính trên máy chủ. Khi có chiết khấu, giá sàn an toàn có thể giới hạn mức giảm thực tế; giá website không thay đổi.
API OFF chặn add kể cả replay; key hợp lệ vẫn đọc services/balance/status. Gửi nhà cung cấp tuân theo gate và hàng đợi hiện có, không cam kết tức thì. Đơn API không sinh hoa hồng Affiliate.
Xử lý lỗi và gửi lại yêu cầu an toàn
Chống xử lý trùngKhi đặt đơn qua API, mạng có thể ngắt sau lúc hệ thống đã nhận đơn và trừ tiền. Timeout hoặc HTTP 503 không tự chứng minh yêu cầu chưa được xử lý. Hãy dùng một mã duy nhất cho mỗi ý định đặt đơn.
- Trước lần add đầu tiên, tạo client_order_id duy nhất (hoặc idempotency_key), lưu lại cùng service, link, quantity và max_charge đã gửi.
- Nếu nhận được order ID, lưu ID đó và dùng action=status với order để kiểm tra; không tạo add mới chỉ để hỏi trạng thái.
- Nếu timeout hoặc mất phản hồi và chưa có order ID, chỉ thử lại khi kết nối/API sẵn sàng; gửi lại chính xác cùng action=add, mã yêu cầu và toàn bộ tham số ban đầu. Không tạo mã mới.
- Nếu API trả order ID sau lần thử lại, sử dụng ID đó để theo dõi. Nếu vẫn chưa rõ, dừng tự động thử lại vô hạn và liên hệ hỗ trợ kèm mã yêu cầu (không gửi API Key).
Không tạo đơn trùng
Đổi client_order_id hoặc không gửi mã có thể tạo thêm đơn và trừ tiền lần nữa. Giữ nguyên cả max_charge khi thử lại; cùng mã nhưng thay đổi service/link/quantity/max_charge sẽ bị từ chối 409. API OFF chặn cả thử lại add; không tự bật API hoặc đổi cấu hình để vượt qua.
curl -X POST 'https://smmvelox.com/api/v2' \
--data-urlencode 'key=YOUR_API_KEY' \
--data-urlencode 'action=add' \
--data-urlencode 'service=123' \
--data-urlencode 'link=https://example.com/post' \
--data-urlencode 'quantity=1000' \
--data-urlencode 'client_order_id=YOUR_UNIQUE_ORDER_ID' \
--data-urlencode 'max_charge=11550'Không thể tra cứu status bằng client_order_id; action=status cần order ID. Nếu chưa nhận được ID, chỉ có thể thử lại add an toàn với cùng mã và nội dung đã gửi (khi API sẵn sàng), hoặc liên hệ hỗ trợ.
Ví dụ lỗi JSON và cách xử lý
Mã đã dùng cho nội dung khác hoặc charge vượt max_charge: dừng, đối chiếu yêu cầu và giá; không tự tạo mã mới để lách lỗi.
{
"error": "Client order ID conflicts with an existing request"
}Dữ liệu hoặc điều kiện đặt đơn không hợp lệ: xem fields, sửa nguyên nhân trước khi thử một yêu cầu mới; không lặp mù quáng.
{
"error": "Invalid request parameters",
"fields": [
"quantity"
]
}Vượt giới hạn: chờ tối thiểu thời gian trong header Retry-After, giảm tần suất và giữ nguyên mã khi thử lại add.
Retry-After: 60
{
"error": "Rate limit exceeded"
}API đang OFF, nguồn chưa sẵn sàng hoặc lỗi tạm thời: dừng gửi hàng loạt, chờ khôi phục; nếu kết quả add chưa rõ, chỉ thử lại với cùng mã/tham số.
{
"error": "API order creation is disabled"
}Các JSON trên là ví dụ từ các trường hợp thực tế; thông báo error có thể khác tùy nguyên nhân. Mã HTTP và hướng xử lý mới là điều cần kiểm tra.
Mã lỗi HTTP
Phản hồi lỗi dùng JSON có trường error; lỗi xác thực và thông tin nội bộ không được công khai.
| HTTP | Ý nghĩa |
|---|---|
| 200 | Thành công (trong batch có thể có lỗi từng ID) |
| 400 | Action hoặc tham số query không hợp lệ |
| 401 | API Key không hợp lệ hoặc không được phép |
| 403 | Kết nối không bảo đảm HTTPS |
| 404 | Không tìm thấy dịch vụ/đơn hoặc không thuộc tài khoản |
| 405 | Phương thức HTTP không được hỗ trợ |
| 409 | Trùng mã yêu cầu với nội dung khác hoặc vượt max_charge |
| 413 | Nội dung yêu cầu vượt giới hạn dung lượng |
| 415 | Content-Type không hỗ trợ |
| 422 | Tham số, giá hoặc điều kiện mua không hợp lệ |
| 429 | Quá giới hạn yêu cầu, xem Retry-After |
| 503 | API tắt, chưa cài đặt hoặc dịch vụ tạm chưa sẵn sàng |
Bảo mật, giới hạn và lỗi
Tùy chọn: tối đa 20 IPv4/IPv6 chính xác, mỗi dòng một IP. Trống nghĩa là không giới hạn IP. Không hỗ trợ CIDR. Danh sách sai bị từ chối và giữ cấu hình cũ.
Mỗi phút: 60 request/IP trước xác thực; thêm 120 lượt đọc hoặc 15 add theo user và key. Body tối đa 64 KiB. Lỗi 429 có Retry-After. Không tin Forwarded/X-Forwarded-For tự gửi từ client.
FAQ: Lấy key sau đăng nhập. Quên key phải thay mới, không thể xem lại secret cũ. Key nhà cung cấp không dùng ở đây. V1 (30/10/2026): services, balance, add Default và status đơn/batch. Các thao tác sau bán chờ V2 có luồng an toàn.