Với Sàn Đen Shop, chúng tôi không tự vận hành API mà khuyên dùng RioHub — nền tảng affiliate Sàn Đen Shop cho creator Việt Nam: tạo link affiliate kèm sub_id theo dõi hoa hồng, deep link mở app, tra cứu sản phẩm và đồng bộ đơn hàng qua API/webhook. Trang này mô tả cách hoạt động để bạn tích hợp thẳng với RioHub.
Copy toàn bộ hướng dẫn API dạng text rồi dán vào ChatGPT / Claude / Gemini — AI sẽ hiểu ngay cách tích hợp và viết code giúp bạn.
Đăng ký RioHub, kết nối tài khoản creator Sàn Đen của bạn và lấy API key ở mục Developer.
Gửi URL sản phẩm (vt.tiktok.com hoặc link trực tiếp) kèm sub_id → nhận link affiliate chính chủ.
Gắn link vào video, livestream, bio, quảng cáo… Người xem mua qua link của bạn.
Đơn ghi nhận tự động trong 5–30 phút. Lọc theo từng sub_id hoặc nhận realtime qua webhook.
Base URL https://riohub.vn/api/v1 · xác thực bằng header X-Riohub-Api-Key trên mọi request (đọc key từ biến môi trường, không hardcode vào code).
Từ URL/ID sản phẩm + sub_id → link affiliate theo dõi được hoa hồng.
Tối đa 50 sản phẩm/lần → sharing_link, deep_link, one_link.
/partner/tiktok/affiliate/general-links GETKèm số đơn & hoa hồng gộp theo từng sub_id.
/partner/tiktok/affiliate/links GETHoa hồng ước tính/thực nhận, bộ lọc mạnh, sync tăng dần.
/partner/tiktok/affiliate/orders GETTên, ảnh, giá, hoa hồng, lượt bán — cache 24h phía RioHub.
/partner/tiktok/affiliate/products HOOKRioHub bắn event về server của bạn khi đơn tạo/cập nhật/hoàn.
order.created · updated · refundedNhận product_url (link rút gọn vt.tiktok.com hoặc link trực tiếp — hoặc product_id) và sub_id, trả về link affiliate.
1–128 ký tự [A-Za-z0-9_-]; mỗi sub KHÔNG được chứa - (đó là dấu phân tách). Vị trí trống để rỗng, vd abc-def--.
curl -X POST "https://riohub.vn/api/v1/partner/tiktok/affiliate/links" \
-H "X-Riohub-Api-Key: $RIOHUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"creator_username": "nnguynanh0",
"product_url": "https://vt.tiktok.com/XXXXXX/",
"sub_id": "fb-ads-01"
}'
# Response 200
{
"affiliate_link": "https://vt.tiktok.com/XXXXXX/",
"sub_id": "fb-ads-01",
"product_id": "1729...",
"creator_username": "nnguynanh0"
}Gửi tối đa 50 product_ids một lần → nhận sharing_link (web), deep_link (mở app) và one_link cho từng sản phẩm; sản phẩm lỗi trả trong failed kèm lý do. Deep link không gắn được sub_id — cần theo dõi hoa hồng theo sub_id thì dùng endpoint số 1.
Liệt kê link đã tạo qua API kèm số đơn và hoa hồng theo từng sub_id. Lọc theo sub_id (khớp chuỗi con), sub1..sub4 (khớp chính xác từng vị trí), channel, khoảng ngày tạo; phân trang page_size tối đa 200.
Kéo đơn hàng kèm hoa hồng ước tính/thực nhận. Bộ lọc mạnh: theo thời gian tạo hoặc thời điểm đơn được cập nhật (update_time_start/end — dùng để sync tăng dần khi đơn đổi trạng thái settlement/refund), theo sub_id/sub1..sub4, mã đơn (tối đa 200 — tiện verify postback), settlement_status, status chuẩn hoá (1 pending · 2 settled · 3 cancelled/refunded), product_id, nguồn nội dung (VIDEO/LIVE/SHOWCASE/LINKSHARE), fully_refunded.
API tạo link không kèm thông tin sản phẩm — dùng endpoint này lấy tên, ảnh, giá, hoa hồng, lượt bán theo product_id (tối đa 100 id/request). RioHub cache 24 giờ: id đã có trong cache trả về ngay, id mới/quá hạn mới gọi Sàn Đen.
commission.rate là giá trị raw ÷ 100 = % (vd 600 = 6%); commission.amount có thể là khoảng "min – max".sales_price có thể rỗng → dùng original_price. units_sold là lũy kế.RioHub POST về URL của bạn khi có sự kiện order.created, order.updated, order.refunded — mỗi event có event_id (UUID) để chống trùng và chữ ký header X-Riohub-Signature để xác minh. Server của bạn cần trả HTTP 2xx trong 5 giây; thất bại sẽ được retry lùi dần tối đa 6 lần. Kết hợp với endpoint orders (lọc theo order_id) để đối chiếu.
| HTTP | Ý nghĩa |
|---|---|
| 401 | API key sai hoặc thiếu. |
| 403 | Creator không thuộc tài khoản của API key. |
| 404 | Creator chưa kết nối RioHub. |
| 422 | product_not_promotable — sản phẩm không có hoa hồng hoặc chưa được shop duyệt. |
| 429 | Vượt rate limit — đọc header Retry-After rồi thử lại. |
| 502 | Không tạo được link nào (batch deep link). |
.env), không commit key vào git, không trả key ra client.429: tôn trọng Retry-After, thêm retry có giới hạn số lần.sub_id theo cấu trúc 4 vị trí ngay từ đầu (vd nguồn-chiến_dịch-vị_trí-biến_thể) để sau này lọc đơn theo sub1..sub4 mà không phải đổi tag.update_time_start/end thay vì quét lại toàn bộ theo ngày tạo.order_id gọi 1 request verify (endpoint orders nhận tối đa 200 mã/lần).