Amazon SP-API 403: Nguyên nhân và cách khắc phục lỗi bị từ chối
Tìm hiểu vì sao Amazon SP-API trả lỗi 403 “Access to requested resource is denied” khi gọi báo cáo và cách người bán cấp quyền lại cho ứng dụng.
Long Nguyen
Lập trình viên Fullstack · Kỹ sư AI · Nhà nghiên cứu
Khi ứng dụng của bạn gọi Amazon SP-API — chẳng hạn yêu cầu báo cáo GET_MERCHANT_LISTINGS_ALL_DATA thông qua Reports API — hệ thống có thể trả về phản hồi 403 cùng AccessDeniedException đối với một người bán cụ thể, dù cùng yêu cầu đó vẫn hoạt động với những người bán khác. Yêu cầu đã được xác thực thành công; vấn đề nằm ở quyền truy cập của người bán.
Thông báo lỗi
Status_code: 403
Errors: [{"code": "Unauthorized", "message": "Access to requested resource is denied.", "details": ""}]
Res_headers: {... 'x-amzn-errortype': 'AccessDeniedException' ...}
Vì sao lỗi này xảy ra?
Lỗi 403 trong trường hợp này là lỗi cấp quyền, không phải vấn đề về dữ liệu. Quyền cấp đã lưu của người bán bị lỗi thời — refresh token mà ứng dụng lưu cho người bán đó không còn chứa sự đồng ý hợp lệ cho thao tác này. Vì vậy, cùng một đoạn mã vẫn hoạt động với những người bán đã kết nối khác nhưng lại trả về thông báo “resource is denied” với người bán này. Cách khắc phục nằm ở phía người bán: họ chỉ cần cấp quyền lại cho ứng dụng.
Cách khắc phục
Hãy yêu cầu người bán gặp lỗi cấp quyền lại cho ứng dụng trong Seller Central. Tại Seller Central → Apps & Services → Manage Your Apps, họ tìm ứng dụng rồi nhấp vào Authorize một lần nữa. Thao tác này sẽ tạo quyền cấp mới cho ứng dụng, sau đó yêu cầu báo cáo sẽ được thực hiện thành công. Để xem hướng dẫn cấp quyền lại chi tiết, hãy tham khảo tài liệu Renew Authorizations của Amazon.
Sau khi xây dựng các hệ thống tích hợp đa kênh trên hơn 20 kênh bán hàng — gồm Amazon SP-API, eBay, Shopify, TikTok Shop và nhiều nền tảng khác — tôi đã gặp và xử lý hầu hết các tình huống phức tạp liên quan đến cấp quyền này. Nếu bạn cần hỗ trợ về eCommerce hoặc tích hợp marketplace API, hãy xem dịch vụ hỗ trợ eCommerce của Netalith hoặc liên hệ trực tiếp với tôi qua LinkedIn.
CÂU HỎI THƯỜNG GẶP
Câu hỏi thường gặp
Lỗi 403 này có nghĩa là thông tin xác thực của ứng dụng bị hỏng không?
Không. Ứng dụng vẫn xác thực bình thường — lỗi xảy ra vì quyền cấp của riêng người bán này đã bị lỗi thời, nên yêu cầu chỉ bị từ chối đối với người bán đó.
Vì sao ứng dụng hoạt động với những người bán khác nhưng không hoạt động với người bán này?
Vì vấn đề liên quan đến quyền cấp của một người bán cụ thể, không phải bản thân ứng dụng. Sự đồng ý đã lưu cho người bán đó cần được làm mới.
Người bán cần làm gì để khắc phục lỗi?
Người bán cấp quyền lại cho ứng dụng trong Seller Central → Apps & Services → Manage Your Apps bằng cách tìm ứng dụng và nhấp vào Authorize một lần nữa. Sau đó, yêu cầu sẽ được thực hiện thành công.