Khoá API
Tạo một khoá cho tích hợp của bạn, chọn đúng phạm vi, và hiểu vì sao khoá tự thu hẹp khi vai trò người tạo bị hạ.
Quản lý → Cài đặt → Khoá API (en: Manage → Settings → API keys).
"Thông tin đăng nhập để một tích hợp truy cập cửa hàng này qua API công khai. Khoá luôn làm được ít hơn người tạo ra nó."
Câu thứ hai là quy tắc quan trọng nhất, và mục cuối trang nói kỹ.
Tạo một khoá
Tạo khoá (en: New key).
Tên — bắt buộc, và biểu mẫu nói vì sao: "Đặt tên cho khoá để sau này bạn
nhận ra nó." Sáu tháng nữa, wbk_a1b2c3… không nói cho bạn biết gì; "Đồng bộ
kho Acme" thì có.
Phạm vi — chia làm Quyền nội dung và Quyền cửa hàng. Phải chọn ít
nhất một. Chọn ít nhất mức đủ dùng: một tích hợp chỉ đọc đơn hàng thì cho
đúng orders.read, không hơn.
Chuỗi bí mật hiện đúng một lần
Sau khi tạo, một hộp thoại hiện ra:
Sao chép khoá ngay bây giờ — "Đây là lần duy nhất khoá được hiển thị. Hãy lưu vào nơi an toàn — nếu mất, hãy thu hồi khoá này và tạo khoá mới."
Đúng theo nghĩa đen. Khoá được lưu ở dạng đã băm (SHA-256), nên không ai — kể cả người vận hành nền tảng — đọc lại được. Không có nút "hiện lại".
Danh sách về sau chỉ hiện tiền tố (wbk_a1b2c3…), đủ để phân biệt các khoá
và vô dụng nếu dùng làm thông tin đăng nhập.
Mất khoá thì thu hồi và tạo cái mới. Không phải bất tiện — đó là điều duy nhất khiến "chỉ hiện một lần" có ý nghĩa.
Danh sách khoá
Các cột: Tên, Khoá (tiền tố), Quyền, Dùng lần cuối, Trạng thái.
Dùng lần cuối là cột hữu ích nhất khi dọn dẹp: một khoá Chưa dùng sau nhiều tháng gần như chắc chắn là khoá bỏ quên, và mọi khoá bỏ quên đều là một cánh cửa mở không ai canh.
Thu hồi
Thu hồi — "Mọi thứ đang dùng “{tên}” sẽ ngừng hoạt động ngay lập tức. Không thể hoàn tác."
Khoá bị thu hồi vẫn nằm trong danh sách với trạng thái Đã thu hồi, nên bạn còn thấy nó từng tồn tại và từng làm gì.
Dùng khoá
Thẻ Dùng khoá API thế nào ngay trên màn hình đi qua bốn bước, kèm ví dụ
curl và nút mở Bảng thử API. Tóm lại: gửi chuỗi bí mật trong header
Authorization của mọi yêu cầu. Không session, không cookie, không đăng nhập.
curl https://api.your-host/api/v1/products \
-H "Authorization: Bearer wbk_your_secret_here"
Một khoá thuộc đúng một cửa hàng, nên không có mã cửa hàng trong đường dẫn —
không có {siteId} ở bất cứ đâu trong /api/v1. Một khoá mà chỉ cần sửa URL là
trỏ được sang cửa hàng khác thì bán kính thiệt hại của nó phụ thuộc vào sự trung
thực của người gọi. Một agency vận hành năm cửa hàng giữ năm khoá.
Thiếu phạm vi thì API trả 403 insufficient_scope — không phải 404, để bạn
phân biệt "bạn không được phép" với "nó không tồn tại".
Toàn bộ chi tiết ở API công khai.
Hai giới hạn, không phải một
Phần mà tài liệu này tồn tại để nói:
Giới hạn 1 — phạm vi của chính khoá. Thứ bạn tích lúc tạo.
Giới hạn 2 — vai trò hiện tại của người đã tạo khoá. Bảng nói: "Khoá còn bị giới hạn bởi vai trò của người tạo — nếu sau này quyền của người đó bị thu hẹp thì khoá cũng vậy."
Quyền được phân giải ở từng yêu cầu, không bao giờ chụp lại lúc tạo khoá. Một khoá do quản trị viên tạo, người này về sau bị hạ xuống Người xem, mất quyền ghi ở yêu cầu kế tiếp — không cần một đợt thu hồi nào.
Hai hệ quả thực tế:
- Khi một người rời công ty, hạ vai trò hoặc gỡ họ khỏi site. Việc đó thu hẹp mọi khoá họ từng tạo, cùng lúc, không cần đi tìm từng cái.
- Một khoá có thể ngừng chạy dù bạn không đụng gì tới nó. Một tích hợp đột
nhiên nhận
403thì kiểm vai trò của người đã tạo khoá trước khi nghi ngờ đoạn code.
Nếu phạm vi đã lưu của một khoá không còn hợp lệ, API trả 403 key_unusable —
không phải lỗi của người gọi, và câu trả lời nói rõ như vậy. Cách sửa là tạo
khoá mới.
Khoá API khác với token của ứng dụng
wbk_ là khoá do chủ cửa hàng tạo cho công cụ của mình.
wba_ là token cấp cho một ứng dụng khi khách cài nó từ chợ ứng dụng.
Cả hai đều dùng được trên /api/v1 và hành xử y hệt nhau khi đã qua cửa; khác
nhau ở chỗ ai giữ và cấp thế nào. Xem Xây một app.
Cập nhật 26/9/2026