Conformance with the Shopee documentation
What the add-on does, against the official Shopee Open Platform v2 documentation (open.shopee.com: Developer Guide and API reference, read November 2026). The add-on is proven against a local mock that follows the documented signatures, parameters and answers and against the response samples of the reference; it has not been run against your Shopee shop until you test the connection. Every endpoint and field is cited in Developer notes, including what could not be verified.
| Topic | Documented behaviour | What the add-on does |
|---|---|---|
| Developer account | Access only through an app of a free Shopee Open Platform developer account (partner ID, partner key; separate test and live); the seller authorizes the app | You register the app; the add-on has no shared credentials |
| Hosts | Production: partner.shopeemobile.com, openplatform.shopee.cn, openplatform.shopee.com.br; sandbox: openplatform.sandbox.test-stable.shopee.sg / .cn | Setting “API host”; test mode uses the sandbox host, live mode the production host |
| Signature | HMAC-SHA256 (hex) of partner_id + path + timestamp [+ access_token + shop_id] with the partner key; timestamp valid 5 minutes | Implemented exactly; unit test vectors from the base strings of the Guide |
| Authorization | Link open.shopee.com/auth (auth_type=seller, redirect_uri, response_type=code, state; legacy signed /api/v2/shop/auth_partner still accepted), redirect with code (10 minutes, once) and shop_id or main_account_id; token/get; access token 4 hours; refresh token 30 days, single use; authorization at most 365 days |
Same; refresh under a database lock before the token expires; tokens per shop |
| Products | add_item needs category (leaf), mandatory attributes, brand where the category asks, images uploaded as files (no URLs), weight, dimension for size-input channels, logistics channels; item SKU is the seller’s identifier | Same; limits of the category are read with get_item_limit; channels with a custom seller fee are skipped |
| Stock and price | update_stock with seller_stock per model (model_id 0 for no model); update_price per model; whole numbers outside SG, MY, BR, MX, PL, ES, AR | Same |
| Orders | get_order_list in windows of at most 15 days with a cursor, get_order_detail for 50 orders with optional fields listed explicitly; UNPAID and PENDING cannot proceed | Same; unpaid and pending orders are imported when they are paid |
| Shipping | get_shipping_parameter, then ship_order with exactly one of pickup, dropoff, non_integrated; tracking number from get_tracking_number | Same; the shipment is arranged once; orders that are not READY_TO_SHIP are left alone |
| Cancellation | cancel_order with a reason; item_list for OUT_OF_STOCK; partial_cancel_item_list for partial cancellation | Same |
| Returns | get_return_list in windows of at most 15 days; returns.confirm only for refund-only requests | Same; only refund-only requests are offered for approval |
| Push | Authorization header = HMAC-SHA256 of the callback URL, a vertical bar and the body, with the partner key; a 2xx answer with an empty body; retries 300, 1800, 10800 seconds | Same; codes 3 and 4 start an import |
| Errors | error and message in the answer, usually HTTP 200; error_rate_limit and error_limit; source_ip_undeclared | Rate limits and server errors are retried with back-off; credential, permission and IP errors need a person and say so |
Not covered in 1.0
Section titled “Not covered in 1.0”Variations, bundles, videos, size charts, pre-orders, global products (cross-border merchants), air waybill documents, buyer cancellation requests, return offers and disputes, payouts, Shopee Ads and marketing APIs.