Tài liệu API khách hàng
Điểm cuối API & Xác thực
Tất cả các lệnh gọi API của khách hàng đều sử dụng một điểm cuối HTTP POST duy nhất. Xác thực bằng key hoặc apikey (từ trang khóa API trong hồ sơ của bạn) cùng với action để chọn thao tác. Đường dẫn nằm ở gốc trang web dưới dạng /api/v2 — không có tiền tố ngôn ngữ (ví dụ: không có /en/ trước /api).
Gửi tham số dưới dạng application/x-www-form-urlencoded (ví dụ: curl -d) hoặc dưới dạng JSON với Content-Type: application/json.
{
"key": "YOUR_API_KEY",
"action": "categories"
}
Lưu ý: Thay thế YOUR_API_KEY bằng khóa của riêng bạn. Không bao giờ đặt khóa API trong URL, mã phía máy khách hoặc kho lưu trữ công khai. Các giá trị action được hỗ trợ: categories, shops, services, inventory, add, status, balance.
Yêu cầu bị giới hạn tốc độ theo từng API key. Khi vượt quá, API trả về HTTP 429 kèm header Retry-After. Sử dụng phân trang cho danh sách dịch vụ lớn (kích thước trang mặc định: 50).
API Kiểm thử
Chọn một hành động, nhập các tham số bắt buộc, sau đó nhấp vào Gửi yêu cầu để gọi API trực tiếp. Nếu bạn đã đăng nhập bằng khóa API, nó sẽ được điền bên dưới (ẩn).
Phản hồi
Customer API v2
Lấy Danh mục
Trả về tất cả danh mục cấp cao nhất và tên danh mục con của chúng. Sử dụng các tên chính xác này để lọc Services List theo category và subcategory.
Tham số Yêu cầu
| Tham số | Kiểu | Mô tả | Bắt buộc |
|---|---|---|---|
key / apikey | Chuỗi | Khóa API của bạn | Có |
action | Chuỗi | categories | Có |
Ví dụ yêu cầu
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=categories"
Ví dụ phản hồi
{
"categories": [
{
"category": "Social",
"subcategories": ["Premium", "Standard"]
},
{
"category": "Digital goods",
"subcategories": []
}
]
}
Danh sách Cửa hàng
Trả về tất cả các cửa hàng nhà cung cấp công khai có ít nhất một sản phẩm đang hoạt động, đã được phê duyệt. Mỗi mục bao gồm một mã định danh shop (ObjectId của nhà cung cấp gồm 24 ký tự) — chuyển mã này đến Danh sách Dịch vụ dưới dạng shop để liệt kê các sản phẩm chỉ từ cửa hàng đó. page và limit tùy chọn hoạt động giống như Danh sách Dịch vụ (kích thước trang mặc định là 50, tối đa 500).
Tham số Yêu cầu
| Tham số | Kiểu | Mô tả | Bắt buộc |
|---|---|---|---|
key / apikey | Chuỗi | Khóa API của bạn | Có |
action | Chuỗi | shops | Có |
page | Số | Số trang (mặc định 1) khi limit > 0 | No |
limit | Số | Số mục trên mỗi trang; 0 = trả về tất cả (mặc định 0) | No |
Ví dụ yêu cầu
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=shops"
Ví dụ phản hồi
{
"shops": [
{
"shop": "507f1f77bcf86cd799439011",
"name": "Example Shop",
"description": "Shop description",
"logo": "https://example.com/logo.webp",
"banner": "https://example.com/banner.webp",
"shopUrl": "example-shop",
"productCount": 42,
"featured": true
}
],
"total": 1,
"page": 1,
"limit": 50,
"total_pages": 1
}
Danh sách Dịch vụ
Trả về các sản phẩm (dịch vụ) có thể bán được với thông tin tồn kho, giá cả, chỉ số bán hàng, thống kê đánh giá, dấu thời gian và cờ available cho biết mỗi mặt hàng có thể được đặt hàng ngay bây giờ hay không (tồn kho đáp ứng số lượng mua tối thiểu). Mỗi mặt hàng bao gồm sales_count, rating, review_count, created_at và updated_at. Lọc theo tên category / subcategory từ Get Categories, theo shop từ Shops List, hoặc truyền service để lấy một mặt hàng theo ID dịch vụ của nó (giá trị service từ phản hồi danh sách). Sử dụng language để bản địa hóa name, description, category và subcategory (xem bảng bên dưới). entityType tùy chọn giới hạn loại sản phẩm; sort tùy chọn sắp xếp kết quả trước khi phân trang. Đặt limit=0 để trả về tất cả các mặt hàng phù hợp trong một phản hồi.
Tham số Yêu cầu
| Tham số | Kiểu | Mô tả | Bắt buộc |
|---|---|---|---|
key / apikey | Chuỗi | Khóa API của bạn | Có |
action | Chuỗi | services | Có |
page | Số | Số trang (mặc định 1) khi limit > 0 | No |
limit | Số | Số mục trên mỗi trang; 0 = trả về tất cả (mặc định 0) | No |
shop | Chuỗi | ID Cửa hàng từ Danh sách Cửa hàng (trường shop — ObjectId của nhà cung cấp gồm 24 ký tự). Bí danh: shop_id. Bỏ qua để trả về sản phẩm từ tất cả các cửa hàng. | No |
category | Chuỗi | Tên danh mục cha (từ Lấy Danh mục) | No |
subcategory | Chuỗi | Tên danh mục con (từ Lấy danh mục) | No |
entityType | Chuỗi | Bộ lọc loại sản phẩm: product (mặc định, các mặt hàng danh mục tiêu chuẩn) hoặc smm (dịch vụ tăng trưởng mạng xã hội) | No |
sort | Chuỗi | Thứ tự sắp xếp: created_at (mặc định, mới nhất trước), price_asc, price_desc, sales, rating | No |
service | Chuỗi | Trả về một dịch vụ theo ID (cùng giá trị service như trong phản hồi danh sách) | No |
language | Chuỗi | Ngôn ngữ phản hồi — sử dụng mã từ danh sách Mã ngôn ngữ được hỗ trợ bên dưới (mặc định en) | No |
Mã ngôn ngữ được hỗ trợ (language)
Truyền một trong các giá trị này (không phân biệt chữ hoa chữ thường). Nếu bỏ qua hoặc là en, các trường văn bản vẫn ở Tiếng Anh (ngôn ngữ nguồn được lưu trong danh mục). Các mã được hỗ trợ khác trả về name, description, category và subcategory đã dịch khi có bản dịch; nếu không thì tiếng Anh được sử dụng.
| Mã | Ngôn ngữ | Tên bản địa |
|---|---|---|
en |
English | English |
zh |
Chinese | 中文 |
es |
Spanish | Español |
fr |
French | Français |
de |
German | Deutsch |
ja |
Japanese | 日本語 |
ko |
Korean | 한국어 |
pt |
Portuguese | Português |
pt-BR |
Portuguese (Brazil) | Português (Brasil) |
ru |
Russian | Русский |
ar |
Arabic | العربية |
hi |
Hindi | हिन्दी |
vi |
Vietnamese | Tiếng Việt |
ur |
Urdu | اردو |
th |
Thai | ไทย |
tr |
Turkish | Türkçe |
bn-BD |
Bengali (Bangladesh) | বাংলা |
Cũng được chấp nhận (bí danh)
Các chuỗi này được chuẩn hóa về mã chính ở trên (cùng nhóm dịch):
| Bạn có thể gửi | Giải quyết thành |
|---|---|
zh-hans |
zh |
zh-cn |
zh |
zh-sg |
zh |
zh-hant |
zh |
zh-tw |
zh |
zh-hk |
zh |
zh-mo |
zh |
pt-br |
pt-BR |
pt_br |
pt-BR |
ptbr |
pt-BR |
bn-bd |
bn-BD |
bd |
bn-BD |
en-us |
en |
en-gb |
en |
Không được hỗ trợ: bất kỳ giá trị language nào khác đều được coi như tiếng Anh (không dịch). Chỉ sử dụng các mã chính xác hoặc bí danh được liệt kê ở đây.
Ví dụ yêu cầu
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services"
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "page=1" \
-d "limit=50"
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "entityType=product" \
-d "sort=price_asc" \
-d "page=1" \
-d "limit=50"
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "category=Instagram"
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "shop=507f1f77bcf86cd799439011"
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "service=10042" \
-d "limit=1" \
-d "language=zh"
Hot-sync single lookup: use action=services with service (business_id or product_id) and limit=1. Products that exist but are inactive, pending approval, or blacklisted return HTTP 200 with available=false and the actual stock; only missing IDs or deleted products return 404. rate is required; price is an optional alias with the same value.
Ví dụ phản hồi
Mặc định (limit bị bỏ qua hoặc 0): tất cả dịch vụ trong một phản hồi.
{
"services": [
{
"service": 10042,
"name": "Example product A",
"description": "Product description (may be HTML)",
"type": "Default",
"category": "Social",
"subcategory": "Instagram",
"rate": "9.99",
"min": 1,
"max": 100,
"refill": false,
"cancel": false,
"stock": 100,
"available": true,
"entityType": "product",
"autoDelivery": true,
"sales_count": 128,
"rating": "4.50",
"review_count": 23,
"created_at": "2024-03-01T12:00:00",
"updated_at": "2025-07-10T08:30:00"
}
],
"total": 2,
"page": 1,
"limit": 0,
"total_pages": 1
}
service — mã định danh dịch vụ trong mỗi mục danh sách: ID danh mục số khi được gán, nếu không thì là một chuỗi do hệ thống tạo ra. Sử dụng cùng giá trị cho Check Inventory (phân cách bằng dấu phẩy cho nhiều ID) và Add Order. rate là giá đơn vị bạn phải trả cho dịch vụ đó (bao gồm bất kỳ chiết khấu người mua cụ thể nào của nhà cung cấp được cấu hình cho tài khoản của bạn; nếu không thì là giá niêm yết). available — liệu dịch vụ có thể được đặt hàng ngay bây giờ hay không (có thể bán và tồn kho đáp ứng số lượng mua tối thiểu). Ý nghĩa tương tự như trong Check Inventory; số dư ví và mã phiếu giảm giá vẫn được xác thực khi bạn gọi Add Order. category / subcategory khớp với tên từ Get Categories (subcategory trống khi sản phẩm chỉ thuộc danh mục cấp cao nhất). description có thể chứa văn bản đa dạng thức hoặc HTML từ danh sách sản phẩm. sales_count — tổng số đơn vị đã bán (tích lũy). rating — điểm trung bình từ các đánh giá hiển thị (0.00 khi không có đánh giá). review_count — số lượng đánh giá hiển thị. created_at / updated_at — thời gian tạo và cập nhật lần cuối của sản phẩm (ISO 8601).
Kiểm tra Tồn kho
Trả về tồn kho hiện tại cho một hoặc nhiều dịch vụ. Truyền một ID service duy nhất hoặc nhiều ID được phân cách bằng dấu phẩy (ví dụ: 10054,0665,13541). Sử dụng cùng các giá trị service như trong Services List. Trường available sử dụng cùng quy tắc như trong Services List (có thể bán và tồn kho đáp ứng số lượng mua tối thiểu). Một ID duy nhất trả về một đối tượng; nhiều ID trả về một mảng inventory.
Tham số Yêu cầu
| Tham số | Kiểu | Mô tả | Bắt buộc |
|---|---|---|---|
key / apikey | Chuỗi | Khóa API của bạn | Có |
action | Chuỗi | inventory | Có |
service | Chuỗi | Một hoặc nhiều ID dịch vụ từ danh sách dịch vụ, phân cách bằng dấu phẩy (ví dụ: 10054,0665,13541; tối đa 50 mỗi yêu cầu) | Có |
Ví dụ yêu cầu
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=inventory" \
-d "service=10054,0665,13541"
Ví dụ phản hồi
Khi một ID service duy nhất được cung cấp, phản hồi là một đối tượng (HTTP 404 nếu không tìm thấy):
{
"service": 10042,
"stock": 42,
"available": true,
"entityType": "product",
"autoDelivery": true
}
Khi nhiều ID phân cách bằng dấu phẩy được cung cấp, phản hồi bao gồm các mục trong một mảng inventory (HTTP 200; các dịch vụ bị thiếu bao gồm trường error):
{
"inventory": [
{
"service": 10054,
"stock": 10,
"available": true,
"entityType": "product",
"autoDelivery": true
},
{
"service": 665,
"stock": 0,
"available": false,
"entityType": "product",
"autoDelivery": true
},
{
"service": 13541,
"error": "Service not found"
}
]
}
Thêm Đơn hàng
Tạo một đơn hàng và tính phí từ số dư tài khoản của bạn. Yêu cầu ID service hợp lệ và quantity.
Tham số Yêu cầu
| Tham số | Kiểu | Mô tả | Bắt buộc |
|---|---|---|---|
key / apikey | Chuỗi | Khóa API của bạn | Có |
action | Chuỗi | add | Có |
service | Chuỗi | ID dịch vụ từ danh sách dịch vụ (trường service) | Có |
quantity | Số | Số lượng (mặc định 1) | No |
link | Chuỗi | Trường URL tùy chọn (được chấp nhận để tương thích; không được lưu trữ) | No |
coupon_code / coupon | Chuỗi | Mã phiếu giảm giá tùy chọn (bí danh: coupon) | No |
Ví dụ yêu cầu
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=add" \
-d "service=10042" \
-d "quantity=1"
Ví dụ phản hồi
Trạng thái HTTP 201 Created.
{
"order": "000000000000000000000001",
"charge": "9.99",
"currency": "USD"
}
Trường order là mã định danh đơn hàng duy nhất (chuỗi). charge là tổng số tiền đã được ghi nợ từ ví của bạn (sau chiết khấu người mua, chiết khấu đăng nhập và phiếu giảm giá, nếu có). currency luôn là USD. Truyền order cho Order Status (action=status).
Trạng thái đơn hàng
Trả về tiến độ xử lý, trạng thái giao hàng và thông tin đăng nhập đã giao (nếu có) cho một đơn hàng bạn đã đặt. Yêu cầu mã định danh order từ Add Order.
Tham số Yêu cầu
| Tham số | Kiểu | Mô tả | Bắt buộc |
|---|---|---|---|
key / apikey | Chuỗi | Khóa API của bạn | Có |
action | Chuỗi | status | Có |
order | Chuỗi | Mã định danh đơn hàng được trả về bởi add | Có |
Ví dụ yêu cầu
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=status" \
-d "order=000000000000000000000001"
Ví dụ phản hồi
{
"status": "In progress",
"charge": "75.00",
"start_count": 3,
"remains": 1,
"delivered_units": 2,
"currency": "USD",
"autoDelivery": true,
"entityType": "product"
}
{
"status": "Completed",
"charge": "50.00",
"start_count": 2,
"remains": 0,
"delivered_units": 2,
"currency": "USD",
"autoDelivery": true,
"entityType": "product",
"accounts": ["example_user:redacted", "example_user_2:redacted"]
}
Số dư
Trả về số dư ví khách hàng hiện tại và loại tiền tệ của bạn. Không yêu cầu tham số bổ sung ngoài xác thực.
Tham số Yêu cầu
| Tham số | Kiểu | Mô tả | Bắt buộc |
|---|---|---|---|
key / apikey | Chuỗi | Khóa API của bạn | Có |
action | Chuỗi | balance | Có |
Ví dụ yêu cầu
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=balance"
Ví dụ phản hồi
{
"balance": "100.00",
"currency": "USD"
}
Trả về số dư khả dụng trong ví khách hàng của bạn (dùng để thanh toán đơn hàng).
Phản hồi Lỗi
Lỗi sử dụng một chuỗi error duy nhất. Thông tin xác thực API sai hoặc thiếu thường trả về HTTP 401 với {"error": "Invalid API key"}; các vấn đề xác thực thường trả về 400.
{"error": "Invalid API key"}
{"error": "Invalid action"}
{"error": "Service ID is required"}
{"error": "Service not found"}
{"error": "Shop not found"}
{"error": "Product not found."}
{"error": "This product is not available for purchase."}
{"error": "Invalid quantity."}
{"error": "Minimum quantity is 2."}
{"error": "Insufficient stock. Available: 10."}
{"error": "Insufficient balance. Please recharge your account."}
{"error": "Order not found"}
{"error": "Category not found"}
{"error": "Subcategory not found"}
{"error": "Subcategory not found in category"}