VI | EN
Nhắn Messenger
Dành cho developer

For pickup method only, use this api to update pickup address and pickup time for packages meet: 1) package's fulfillment status is LOGISTICS_PICKUP_RETRY; or 2) package's fulfillm — API Shopee

v2.logistics.update_shipping_order · gọi qua Quantri360 bằng một API key cho chính tài khoản / tài sản bạn đã kết nối và ủy quyền — 360 lo việc ký request và làm mới phiên đăng nhập bạn đã cấp.

v2.logistics.update_shipping_order

POST/api/v2/logistics/update_shipping_orderGọi qua 360: POST https://partner.quantri360.com/v1/shopee/api/v2/logistics/update_shipping_order
Endpoint ghi — thay đổi dữ liệu trên Shopee. Key phải được tạo với tick "Cho phép gọi API ghi", nếu không sẽ nhận 403 write_not_allowed. Mỗi lần gọi được ghi nhật ký.
Mô tả API

Cập nhật địa chỉ / lịch lấy hàng cho kiện lấy hàng tận nơi khi trạng thái và điều kiện cho phép đổi lịch.

  • Gọi qua /v1/shopee/api/v2/logistics/update_shipping_order với Authorization: Bearer <key>; dùng platform_shop_id khi có nhiều shop. 360 tự gắn partner_id, shop_id, sign và access_token.
  • API GHI: thay đổi dữ liệu thật trên Shopee; cần key có quyền ghi (can_write) và gói mở module Đơn hàng. Đổi lịch / địa chỉ lấy hàng của kiện.
  • HTTP 200 vẫn có thể có lỗi nghiệp vụ; kiểm error trước khi dùng kết quả.
  • Chỉ hỗ trợ lấy hàng tận nơi; kiện phải ở LOGISTICS_PICKUP_RETRY, hoặc LOGISTICS_REQUEST_CREATED và đủ điều kiện đổi lịch đơn hỏa tốc. address_id và pickup_time_id lấy từ get_shipping_parameter.

Request

Địa chỉ

POST https://partner.quantri360.com/v1/shopee/api/v2/logistics/update_shipping_order

Xác thực & gian hàng

TênVị tríKiểuMẫuMô tả
AuthorizationheaderheaderBearer q360_live_ab12cd34_…Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand.
platform_shop_idquerystring100001Gian hàng (lấy ở GET /v1/platforms → shops[].platform_shop_id). BẮT BUỘC khi brand có > 1 gian hàng trên nền tảng; 360 bỏ tham số này trước khi chuyển tiếp.

Tham số request

TênVị tríKiểuBắt buộcMẫuMô tả
order_snbodystringCó2611040DEMO001Mã đơn hàng.
package_numberbodystringKhôngOFG000000000000001Mã kiện; không có thì bỏ trường, không gửi chuỗi rỗng.
pickupbodyobjectCó{"address_id": 100001, "pickup_time_id": "demo-slot-1"}Bắt buộc nếu info_needed của get_shipping_parameter yêu cầu pickup; vẫn gửi khối dù rỗng.
pickup.address_idbodyint64Có100001Mã địa chỉ lấy từ get_shipping_parameter.
pickup.pickup_time_idbodystringCódemo-slot-1Mã khung giờ lấy hàng từ get_shipping_parameter; bắt buộc gửi.

Ví dụ request

curl -s -X POST "https://partner.quantri360.com/v1/shopee/api/v2/logistics/update_shipping_order" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"order_sn":"2611040DEMO001","package_number":"OFG000000000000001","pickup":{"address_id":100001,"pickup_time_id":"demo-slot-1"}}'
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.post(
    "https://partner.quantri360.com/v1/shopee/api/v2/logistics/update_shipping_order",
    params={},
    json={
        "order_sn": "2611040DEMO001",
        "package_number": "OFG000000000000001",
        "pickup": {
            "address_id": 100001,
            "pickup_time_id": "demo-slot-1"
        }
    },
    headers={"Authorization": f"Bearer {KEY}"},
    timeout=60,
)
print(r.status_code)
print(r.json())
Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/shopee/api/v2/logistics/update_shipping_order');
for (const [k, v] of Object.entries({})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
  method: 'POST',
  headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({"order_sn":"2611040DEMO001","package_number":"OFG000000000000001","pickup":{"address_id":100001,"pickup_time_id":"demo-slot-1"}}),
});
console.log(r.status, await r.json());
PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/shopee/api/v2/logistics/update_shipping_order' . '?' . http_build_query([]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key, 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"order_sn":"2611040DEMO001","package_number":"OFG000000000000001","pickup":{"address_id":100001,"pickup_time_id":"demo-slot-1"}}');
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status, "\n", $res;

Response

Tham số phản hồi (nguyên của Shopee)

Kiểm error / message trước khi dùng kết quả; kiểm lỗi riêng từng phần tử nếu phản hồi có danh sách.

TênKiểuMẫuMô tả
request_idstringd52ca43b277a4f9292fb8be658bfd33dMã request của Shopee để tra lỗi.
errorstringMã lỗi Shopee; rỗng = thành công.
messagestringMô tả lỗi.

Mẫu phản hồi

{
  "error": "",
  "message": "",
  "request_id": "demo-request"
}

Mã lỗi của Shopee (113)

Bấm để xem
MãÝ nghĩa
logistics.error_paramTham số vận chuyển không hợp lệ (vd đơn đang được phân bổ ĐVVC, mã gói trùng) — xem `message`.
logistics.address_not_foundĐịa chỉ không hợp lệ; kiểm tra lại địa chỉ.
logistics.ADDRESS_NOT_SUPPORTĐịa chỉ không được hỗ trợ.
logistics.address_not_supportedĐịa chỉ không hỗ trợ thao tác này.
logistics.block_buyer_nameTên người mua bị cấm.
logistics.business_process_errorXử lý nghiệp vụ thất bại.
logistics.business_validation_errorKiểm tra nghiệp vụ thất bại.
logistics.buyer_address_not_foundKhông tìm thấy địa chỉ người mua.
logistics.cancel_not_allowedKhông được phép hủy.
logistics.category_prohibitedĐơn có hàng bị cấm.
logistics.error_channel_existKhông tìm thấy kênh giao thực tế của đơn.
logistics.error_addressĐịa chỉ không hợp lệ.
logistics.error_limitĐơn chưa xác nhận gửi.
logistics.error_buyer_addressidMã địa chỉ người mua không hợp lệ.
logistics.error_cannot_cancel_logistic_txnGiao dịch vận chuyển hiện tại không hỗ trợ hủy.
logistics.error_connectionKết nối hệ thống bên ngoài thất bại.
logistics.error_consignmentKhông lấy được mã vận đơn.
logistics.error_consignment_no_acceptedKhông được phép cập nhật mã vận đơn.
logistics.error_core_serverGọi hệ thống xử lý thất bại.
logistics.error_otherĐịa chỉ lấy hàng không được hỗ trợ.
logistics.error_cutoff_timeCần kiểm tra lại thời gian lấy hàng.
logistics.error_decimalGiá trị thập phân không hợp lệ.
logistics.error_duplicate_consignmentMã vận đơn bị trùng.
logistics.error_duplicated_consignmentMã vận đơn bị trùng.
logistics.error_expiredĐơn đã hết hạn.
logistics.error_failed_get_nearest_whs_idnKhông lấy được mã kho gần nhất.
logistics.error_not_existĐịa chỉ không tồn tại.
logistics.error_formatĐịnh dạng nội dung từ hệ thống bên ngoài không hợp lệ.
logistics.error_invalid_channel_idMã kênh không hợp lệ.
logistics.error_ipĐịa chỉ IP bị từ chối.
logistics.error_item_not_foundKhông tìm thấy sản phẩm.
logistics.error_loginfoThông tin vận chuyển không hợp lệ.
logistics.error_logistic_txn_not_foundKhông tìm thấy bản ghi vận chuyển.
logistics.error_logistics_shop_require_pickup_addressBắt buộc có địa chỉ lấy hàng.
logistics.error_message_typeLoại thông điệp không hợp lệ.
logistics.error_methodThao tác không được hỗ trợ.
logistics.error_missing_cdtKhông tìm thấy cấu hình CDT.
logistics.error_no_pickupKhông hỗ trợ lấy hàng tận nơi.
logistics.error_no_pickup_addressThiếu địa chỉ lấy hàng.
error_not_foundKhông tìm thấy đơn / gói / yêu cầu theo mã đã gửi.
logistics.error_operation_failedThao tác thất bại.
logistics.error_order_contextThông tin ngữ cảnh đơn không hợp lệ.
logistics.error_order_not_foundKhông tìm thấy đơn.
logistics.error_order_stateTrạng thái đơn hiện tại không cho phép thao tác.
error_paramTham số sai / thiếu / sai kiểu — xem `message` để biết tham số nào.
error_permissionGian hàng không có quyền xem dữ liệu này (vd yêu cầu trả / đơn không thuộc gian hàng).
logistics.error_phoneSố điện thoại không hợp lệ.
logistics.error_pickup_timeThời gian lấy hàng không hợp lệ.
logistics.error_return_tracking_num_not_foundKhông tìm thấy mã vận đơn hoàn.
logistics.error_seller_never_apply_tracking_no_beforeKhông tìm thấy lịch sử yêu cầu mã vận đơn.
logistics.error_sender_addressĐịa chỉ lấy hàng không hợp lệ; cần thêm hoặc đánh dấu địa chỉ lấy hàng mới để tiếp tục gửi.
error_serverLỗi hệ thống Shopee — thử lại sau ít phút.
logistics.error_set_asf_by_weightKhông thiết lập được phí vận chuyển thực tế.
logistics.error_set_seller_addressKhông thiết lập được địa chỉ người bán.
logistics.error_stateTrạng thái bản ghi vận chuyển hiện tại không hỗ trợ thao tác.
logistics.error_statusTrạng thái bản ghi vận chuyển hiện tại không hỗ trợ thao tác.
logistics.error_store_not_foundKhông tìm thấy cửa hàng.
logistics.error_third_party_serverGọi hệ thống bên ngoài thất bại.
logistics.error_timeoutGọi hệ thống bên ngoài quá thời gian chờ.
logistics.error_tokenToken không hợp lệ.
logistics.error_too_many_invoke_functionKhông lấy được khóa xử lý.
logistics.error_traceno_requiredBắt buộc có mã theo dõi.
logistics.error_unknownLỗi chưa xác định; xem chi tiết lỗi.
logistics.error_unsupportedThao tác không được hỗ trợ.
logistics.error_unsupported_addressĐịa chỉ không được hỗ trợ.
logistics.error_updateCập nhật thất bại.
logistics.error_update_logistic_unsupportedHiện không hỗ trợ cập nhật vận chuyển.
logistics.error_zipcode_not_foundKhông tìm thấy mã bưu chính.
logistics.feature_not_supportedTính năng không được hỗ trợ.
logistics.invalid_sizeKích thước không hợp lệ.
logistics.error_dataTrạng thái cửa hàng chưa khả dụng, đang chờ người mua cập nhật.
logistics.item_is_in_bundleKhông thể tắt kênh vì có sản phẩm trong combo.
logistics.logistic_order_is_locked_on_creatingKhông lấy được khóa tạo yêu cầu vận chuyển.
logistics.max dimension is limitedVượt giới hạn kích thước hoặc khối lượng tối đa.
logistics.missing_cdtThiếu cấu hình CDT.
logistics.no buyer_storeThiếu cửa hàng của người mua.
logistics.no_proportionKhông tìm thấy tỷ lệ.
logistics.not_foundKhông tìm thấy dữ liệu.
logistics.order not foundKhông tìm thấy đơn liên quan.
logistics.order_finalizedĐơn đã ở trạng thái hoàn tất.
logistics.order_not_ready_to_updateTrạng thái đơn chưa sẵn sàng cập nhật.
logistics.package_not_existGói không tồn tại.
logistics.parcel_amount_over_limitGiá trị đơn vượt giới hạn.
logistics.pickup_whitelist_not_supportedKhông được phép lấy hàng tận nơi.
logistics.pickup_address_unsupportedĐịa chỉ lấy hàng không được hỗ trợ.
logistics.price_errorGiá không hợp lệ.
logistics.quantity_errorSố lượng không hợp lệ.
logistics.RcvStoreId not foundKhông tìm thấy mã cửa hàng nhận.
logistics.seller_address_not_support_codĐịa chỉ người bán không hỗ trợ lấy hàng COD.
logistics.ship_order_need_address_pickup_timeBắt buộc có address_id và pickup_time_id.
logistics.ship_order_need_pacakge_numberĐơn đã tách này bắt buộc gửi package_number.
logistics.ship_order_need_tracking_numbertracking_number không được để trống.
logistics.ship_order_not_need_pacakge_numberĐơn chưa tách này không được gửi package_number.
logistics.ship_order_only_support_one_typeChỉ chọn một cách giao: pickup, dropoff hoặc non_integrated.
logistics.ship_order_pff_initKhông thể xác nhận gửi đơn do kho xử lý.
logistics.ship_order_pickup_time_invalidMã khung giờ lấy hàng không hợp lệ.
logistics.ship_order_unsupport_pickupĐơn không hỗ trợ lấy hàng tận nơi.
logistics.shop_not_foundKhông tìm thấy gian hàng.
logistics.shop_not_support_wmsGian hàng không hỗ trợ WMS.
common.invalid_shopGian hàng không hợp lệ — kiểm tra platform_shop_id.
logistics.sls calculate failTính phí vận chuyển ước tính thất bại.
logistics.update_not_allowedHiện không được phép cập nhật.
logistics.update_shipping_order_no_param_changeKhông thể cập nhật khi mọi tham số đều giữ nguyên.
logistics.can_not_update_combine_orderKhông thể cập nhật đơn gộp qua API; cần dùng Kênh Người Bán.
logistics.invalid_address_versionĐịa chỉ theo địa giới cũ không còn được hỗ trợ — cập nhật địa chỉ gian hàng trên Kênh Người Bán.
error_dataDữ liệu không tồn tại hoặc không hợp lệ cho thao tác (vd mã không có, loại yêu cầu không cho phép).
error_shopGian hàng không hợp lệ — kiểm tra platform_shop_id.
error_otherLỗi hệ thống hoặc lỗi đổi lịch từ dịch vụ liên quan — thử lại sau, xem `message`.
error_authỦy quyền gian hàng cho 360 đã hết hạn hoặc bị thu hồi (360 đã tự làm mới token một lần) — chủ gian hàng kết nối lại Shopee trong Partner.
error_limitChạm hạn mức gọi Shopee trong ngày của kết nối — 360 trả kèm thời điểm thử lại; giảm tần suất gọi.
error_rate_limitGọi quá nhanh — chờ vài giây rồi gọi lại (360 cũng giới hạn theo key: 429 + Retry-After).
shop_bannedGian hàng đang bị Shopee khóa — mọi API tạm ngưng tới khi gỡ khóa.
error_kyc_authGian hàng chưa hoàn tất đăng ký người bán trên Kênh Người Bán.

Bắt đầu dùng

  1. Đăng ký tài khoản Partner
  2. Mở loại dữ liệu thuộc nhóm Đơn hàng ở trang nền tảng
  3. Tạo API key (tick kênh Shopee)
  4. Gọi theo ví dụ ở trên