stable本次发布有变化全部展示
来自 Shopee 官方资料快照 ·
- 当前资料结构化阅读页
- 固定快照已留存,可追溯
- 官方原文可核对
资料正文
§1 v2.order.search_package_list
Use this API to search the list of packages that have not been SHIPPED to proceed arranging shipment, and it supports various filters and sort fields.
§2 Overview
Overview
| Field | Value |
|---|---|
| Module | Order |
| API type | Shop |
| HTTP method | POST |
| Path | /api/v2/order/search_package_list |
| Production URL | https://partner.shopeemobile.com/api/v2/order/search_package_list |
| Sandbox URL | https://partner.test-stable.shopeemobile.com/api/v2/order/search_package_list |
| Permission | ERP System; Seller In House System; Order Management; Swam ERP |
§3 Request parameters
Request parameters
| Name | Type | Required | Sample | Description |
|---|---|---|---|---|
| filter | object | No | ||
| filter.package_status | int32 | No | 2 | Use this field to filter the packages of specific status. Applicable values: 0: All; 1: Pending; 2: ToProcess; 3: Processed; Default value = 2 (ToProcess) |
| filter.product_location_ids | string[] | No | ["VN0005EIZ"] | List of product_location_id. Use this field to filter the packages under specific warehouses. |
| filter.logistics_channel_ids | int32[] | No | [50021] | List of logistics_channel_id. Use this field to filter the packages under specific logistics channels. |
| filter.fulfillment_type | int32 | No | 2 | Use this field to filter the packages fulfilled by shopee or seller. Applicable values: 0: None (not apply filter); 1: Shopee; 2: Seller; Default value = 2 (Seller) |
| filter.invoice_pending | boolean | No | false | Use this field to filter the packages under invoice_pending.; Default value = false |
| filter.sorting_group | int32 | No | 1 | [Only for TW 30029 channel] Use this field to filter the sorting group of parcel. This field is only available for package with package_status = 3 and logistics_channel_id = 30029. Applicable values: 0: All; 1: North 2: South |
| filter.order_type | int32 | No | 0 | Use this field to filter packages by order type. Applicable values: 0: All; 1: Regular Order; 2: Instant Order; Default value = 0 (All); Note: For VN shops, using 2: Instant Order will return both Instant Delivery and Same-day Delivery packages. |
| filter.is_pre_order | int32 | No | 0 | Use this field to filter packages by pre-order status. Applicable values: 0: All; 1: Pre-Order; 2: Non Pre-Order; Default value = 0 (All) |
| filter.shipping_priority | int32 | No | 0 | Use this field to filter packages by shipping priority. Applicable values: - For MY/PH/TW/TH shops, and VN Preferred/Preferred Plus/Shopee Mall shops: 0: All; 1: Overdue; 2: Ship by Today; 3: Ship by Tomorrow; - For other shops: 0: All 1: Overdue 2: Within 24h 3: Beyond 24h; Default value = 0 (All) |
| pagination | object | Yes | ||
| pagination.page_size | int32 | Yes | 5 | Each result set is returned as a page of entries. Use the "page_size" filters to control the maximum number of entries to retrieve per page (i.e., per call). This integer value is used to specify the maximum number of entries to return in a single "page" of data.The limit of page_size if between 1 and 100. |
| pagination.cursor | string | No | "" | Specifies the starting entry of data to return in the current call. Default is "". If data is more than one page, the offset can be some entry to start next call. |
| sort | object | No | ||
| sort.sort_type | int32 | No | 1 | Use this field to specify which field to use to sort the returned package list. Available values: 1: ShipByDate; 2: CreateDate; 3: ConfirmedDate; Default value = 1 (ShipByDate) |
| sort.ascending | boolean | No | false | Use this field to specify whether the returned package list is sorted in ascending or descending sort_type.; Default value = true |
§4 Response parameters
Response parameters
| Name | Type | Required | Sample | Description |
|---|---|---|---|---|
| error | string | error_auth | Indicate error type if hit error. Empty if no error happened. | |
| mesage | string | Invalid access_token | Indicate error details if hit error. Empty if no error happened. | |
| response | object | |||
| response.packages_list | object[] | |||
| response.packages_list.order_sn | string | "250211UJM7EVM7" | Shopee's unique identifier for an order. | |
| response.packages_list.package_number | string | "OFG192947720204989" | Shopee's unique identifier for the package under an order | |
| response.packages_list.logistics_channel_id | int32 | 50021 | The identity of logistic channel. | |
| response.packages_list.product_location_id | string | "VN0005EIZ" | Just use this field to pass the next step of Mass ArrangeShipment | |
| response.packages_list.sorting_group | string | "North" | [Only for TW 30029 channel] This field indicate the sorting group value of the package. This field is only available for logistics_channel_id = 30029 and after the package has been arranged for shipment. | |
| response.packages_list.is_shipment_arranged | boolean | false | Only effective when the package's logistics_status/fulfillment_status is LOGISTICS_READY.; This parameter further distinguishes between two scenarios: - true: Package shipment has been arranged (Seller has processed shipment, system is generating tracking number, not yet updated to LOGISTICS_REQUEST_CREATED, no duplicate action needed); - false: Package awaiting shipment arrangement (Seller hasn't processed shipment yet, shipping arrangement required) | |
| response.pagination | object | |||
| response.pagination.total_count | int64 | 320 | Total orders can be returned with your query | |
| response.pagination.next_cursor | string | "1730437200,184066343203459" | if packages is not empty or length of packages <= page_size. You should pass the next_cursor in the next request as page_sentinel. | |
| response.pagination.more | boolean | true | To indicate, it's a the last page or not | |
| response.sort | object | As same as request param | ||
| response.sort.sort_type | int32 | 1 | As same as request param | |
| response.sort.is_asc | boolean | false | As same as request param | |
| request_id | string | 69ee3f61ec6f4e3f85836391e5b78dbc | The identifier for an API request for error tracking. |
§5 Common parameters
Common parameters
| Name | Type | Required | Sample | Description |
|---|---|---|---|---|
| partner_id | int | 1 | Partner ID is assigned upon registration is successful. Required for all requests. | |
| timestamp | timestamp | 1610000000 | This is to indicate the timestamp of the request. Required for all requests. Expires in 5 minutes. | |
| access_token | string | c09222e3fc40ffb25fc947f738b1abf1 | The token for API access, using to identify your permission to the api. Valid for multiple use and expires in 4 hours. | |
| shop_id | int | 600000 | Shopee's unique identifier for a shop. Required param for most APIs. | |
| sign | string | e318d3e932719916a9f9ebb57e2011961bd47abfa54a36e040d050d8931596e2 | Signature generated by partner_id, api path, timestamp, access_token, shop_id and partner_key via HMAC-SHA256 hashing algorithm. More details: https://open.shopee.com/documents?module=87&type=2&id=58&version=2 |
§6 Request samples
Request samples
§7 Payload
Payload
{
"filter": {
"package_status": 2,
"product_location_ids": [
"VN0005EIZ"
],
"logistics_channel_ids": [
50021
],
"fulfillment_type": 2,
"invoice_pending": false,
"sorting_group": 1,
"order_type": 0,
"is_pre_order": 0,
"shipping_priority": 0
},
"pagination": {
"page_size": 5,
"cursor": ""
},
"sort": {
"sort_type": 1,
"ascending": false
}
}
§8 Java
Java
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://partner.shopeemobile.com/api/v2/order/search_package_list?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign×tamp=timestamp")
.header("Content-Type","application/json")
.body("{
\"filter\": {
\"fulfillment_type\": 2,
\"invoice_pending\": false,
\"is_pre_order\": 0,
\"logistics_channel_ids\": [
50021
],
\"order_type\": 0,
\"package_status\": 2,
\"product_location_ids\": [
\"VN0005EIZ\"
],
\"shipping_priority\": 0,
\"sorting_group\": 1
},
\"pagination\": {
\"cursor\": \"\\"\\"\",
\"page_size\": 5
},
\"sort\": {
\"ascending\": false,
\"sort_type\": 1
}
}")
.asString();
§9 PHP
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://partner.shopeemobile.com/api/v2/order/search_package_list?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign×tamp=timestamp',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => '{
"filter": {
"fulfillment_type": 2,
"invoice_pending": false,
"is_pre_order": 0,
"logistics_channel_ids": [
50021
],
"order_type": 0,
"package_status": 2,
"product_location_ids": [
"VN0005EIZ"
],
"shipping_priority": 0,
"sorting_group": 1
},
"pagination": {
"cursor": "\\"\\"",
"page_size": 5
},
"sort": {
"ascending": false,
"sort_type": 1
}
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
§10 cURL
cURL
curl --location --request POST 'https://partner.shopeemobile.com/api/v2/order/search_package_list?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign×tamp=timestamp' \
--header 'Content-Type: application/json' \
--data-raw '{
"filter": {
"fulfillment_type": 2,
"invoice_pending": false,
"is_pre_order": 0,
"logistics_channel_ids": [
50021
],
"order_type": 0,
"package_status": 2,
"product_location_ids": [
"VN0005EIZ"
],
"shipping_priority": 0,
"sorting_group": 1
},
"pagination": {
"cursor": "\"\"",
"page_size": 5
},
"sort": {
"ascending": false,
"sort_type": 1
}
}'
§11 Python
Python
import requests
import json
url = "https://partner.shopeemobile.com/api/v2/order/search_package_list?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign×tamp=timestamp"
payload=json.dumps({
"filter": {
"fulfillment_type": 2,
"invoice_pending": False,
"is_pre_order": 0,
"logistics_channel_ids": [
50021
],
"order_type": 0,
"package_status": 2,
"product_location_ids": [
"VN0005EIZ"
],
"shipping_priority": 0,
"sorting_group": 1
},
"pagination": {
"cursor": "\"\"",
"page_size": 5
},
"sort": {
"ascending": False,
"sort_type": 1
}
})
headers = {
'Content-Type': 'application/json'
}
response = requests.RPCRequest("POST",url,headers=headers, data=payload, allow_redirects=False)
print(response.text)
§12 Response sample
Response sample
§13 JSON
JSON
{
"error": "",
"message": "",
"response": {
"packages_list": [
{
"order_sn": "250211UJM7EVM7",
"package_number": "OFG192947720204989",
"logistics_channel_id": 50021,
"product_location_id": "VN0005EIZ",
"sorting_group": "North",
"is_shipment_arranged": false
}
],
"pagination": {
"total_count": 320,
"next_cursor": "1730437200,184066343203459",
"more": true
},
"sort": {
"sort_type": 1,
"is_asc": false
}
},
"request_id": "69ee3f61ec6f4e3f85836391e5b78dbc "
}
§14 Errors
Errors
| Error | Description | Solution |
|---|---|---|
| error_data | parse data failed | |
| error_data | data not exist | |
| error_param | parameter invalid | |
| error_param | The information you queried is not found. | |
| error_param | Wrong parameters, detail: {msg}. | |
| error_server | Something wrong. Please try later. | |
| error_shop | shopid is invalid | |
| error_param | request not from gateway |
§15 Common errors
Common errors
| Error | Description | Solution |
|---|---|---|
| error_auth | partner_id is invalid | |
| error_auth | The App is deleted, and you'll be unable to make any API call. | |
| error_auth | App developer’s permissions for authorizations have been restricted. If you’re a seller, contact the developer for more information. If you’re the developer, refer to the Open Platform Console for details. | |
| error_param | There is no partner_id in query. | |
| error_param | Invalid partner_id. | |
| error_param | no timestamp | |
| error_param | Invalid timestamp | |
| error_param | There is no sign in query. | |
| error_sign | Wrong sign. | |
| invalid_partner_id | Invalid partner_id, please have a check. | |
| error_auth | No permission to current api. | |
| error_api_call_restricted | The App permission for api call have been restricted. If you’re a seller, contact the developer for more information. If you’re the developer, refer to the Open Platform Console for details. | |
| api_suspended | The API is offline. Please call v2 API instead. | |
| error_limit | The total API call number made by your APP has reached the daily API call limit, please try again after 00: 00 (UTC+08:00) | |
| error_rate_limit | Too many requests. You have reached the rate limit. Please try again later. | |
| source_ip_undeclared | Request Source IP ({ip}) is undeclared. Please declare all your IP addresses in the Shopee Open Platform Console > App list > IP Address Whitelist | |
| error_param | Permission denied. This API is currently offline or the request path is incorrect. | |
| error_param | Partner_id is invalid, should be an integer between 0 and 4294967295. | |
| error_param | no timestamp. | |
| error_param | Timestamp is invalid, should be an integer between 0 and 4294967295. | |
| error_param | Timestamp is expired. | |
| error_partner_key_expired | Your API partner key has expired, please reset the Live API Partner Key in Console to get a new valid partner key to call open api. | |
| error_api_permission | This app type has no permission to this API. | |
| error_param | There is no access_token in query. | |
| error_auth | Invalid access_token. | |
| error_auth | Invalid partner_id or shopid. | |
| shop_no_linked | Partner and shop has no linked. | |
| shop_banned | The shop account has been banned. Permissions for shop authorization and API calls have been suspended until the shop account is restored. | |
| invalid_acceess_token | Invalid access_token, please have a check. | |
| partner_shop_no_link | Invalid partner_id or shop_id, please have a check. | |
| error_ashop_api_permission | The shop is Affiliate shop has no permission to call this API. | |
| error_kyc_auth | No permission. Please inform the seller to complete the Seller Registration on Shopee Seller Center first, then this shop can call for this API. | |
| error_auth | System error, please try again later. | |
| error_param | There is no shop_id in query. | |
| error_param | shop_id is invalid, should be an integer between 0 and 4294967295. |
§16 Update log
Update log
| Date | Change |
|---|---|
| 2025-12-26 | Add order_type, is_pre_order, shipping_priority request parameters and is_shipment_arranged response parameter |
| 2025-10-11 | Update sorting group with "0: All" value in request parameters |
| 2025-07-07 | Add new request and response field "sorting_group" |
| 2025-02-24 | New API |
