service market / Shipment Status Query API Development Document
Consolidated Package Tracking API · v1

Shipment Status Query API Development Document

Instantly check the complete shipment status of the consolidated parcel according to the tracking number: from China Express Collection, Shenzhen Consolidation Warehouse warehousing, Taiwan delivery, to Taiwan Customs clearance stage (GC329) and terminal delivery signature. The same data as HowBridge official website, specially designed for docking with cross-border e-commerce platforms such as 0337.tw.

Order number query

China Express/Customer/Carrier Tracking Number

Full timeline

Collect → Warehouse → Delivery → Sign for receipt

GC329

Taiwan customs clearance stage

No personal information

Only the status is returned, without recipient information.

1 Overview

Let your platform use a tracking number to find out "where is it now" of the consolidated package.

package journey

China takes over→ Shenzhen container warehouse warehousing→ Consolidation and packaging/Taiwan delivery→ Taiwan Customs Clearance (GC329)→ Terminal delivery/signed for

The API will automatically determine which stage the package is in based on the order number, and return the current status, complete timeline, and (if it has entered Taiwan Customs) the GC329 five-stage customs clearance progress.

can use the tracking number :. The Chinese express tracking number (the tracking number used by customers to send to the Shenzhen container warehouse), customer order no., or carrier tracking no. The system will automatically compare across sources.
Privacy protection: This API only queries with "single package tracking number", and the returned data does not contain recipient's name, address, phone number and other personal information; it is also not allowed to list other people's packages in batches with the main bill of lading number (B######).

2 Certification and basic information

All requests must bring an API Key (the same key as the shipping fee API is enough, and the shipment:read permission needs to be activated).

Base URL

https://0523.tw/api/v1/shipment

Authentication header (choose one)

Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx
// 或
X-API-Key: lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Please call it from the server side and do not put the key in front-end JavaScript. The rate limit is in key units, and the response header X-RateLimit-Remaining will report the remaining limit; if the limit is exceeded, HTTP 429 will be returned.

3 Endpoint: cargo status query

GETPOST /api/v1/shipment/track

Check the shipment status of a single package based on the tracking number. Both GET (query string) and POST (JSON / form) are acceptable.

Request parameters

parameterTypeRequiredillustrate
tracking_numberstringRequiredPackage tracking number (4–64 characters, alphanumeric and - _). China Express Tracking Number / Customer Tracking Number / Shipping Tracking Number are all acceptable.

Request example (GET)

curl "https://0523.tw/api/v1/shipment/track?tracking_number=SF1234567890123" \
  -H "Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx"

Response 200 (Example already in warehouse/in transit)

{
  "success": true,
  "cached": false,
  "tracking_number": "SF1234567890123",
  "data": {
    "tracking_number": "SF1234567890123",
    "customer_order_no": "LK260601001",
    "carrier_tracking_no": "SF1234567890123",
    "logistics": "順豐速運",
    "status_code": 2,
    "status": "已入倉",
    "description": "包裹已進入深圳集運倉,等待集運打包",
    "is_delivered": false,
    "is_final": false,
    "last_event_time": "2026-06-01 12:30:00",
    "updated_at": "2026-06-01 12:31:05",
    "timeline": [
      { "name": "已攬收", "completed": true,  "time": "2026-05-30 09:00:00" },
      { "name": "已入倉 (深圳集運倉)", "completed": true,  "time": "2026-06-01 12:30:00" },
      { "name": "集運打包/台灣運送", "completed": false, "time": null },
      { "name": "已簽收", "completed": false, "time": null }
    ],
    "customs_stages": null,
    "events": null
  }
}

Response 404 (no order number found)

{
  "success": false,
  "error": "not_found",
  "message": "查無此單號。請確認單號正確,或包裹尚未進入集運系統。",
  "tracking_number": "SF1234567890123"
}

4 Response field description (data)

fieldTypeillustrate
statusstring Current status (human readable) , such as forecasted / warehoused / in transit / dispatched to Taiwan / signed for receipt. It is recommended to display this string directly.
status_codenumberStatus code (depends on source, see next section). It is recommended to use status, is_delivered, is_final to drive the UI.
is_deliveredboolHas it been signed for?
is_finalboolWhether it is final (signed/returned/cancelled/undeliverable). True to stop polling.
logisticsstringLogistics provider (China Express or Taiwan terminal delivery).
descriptionstringLatest event description.
last_event_timedatetimeThe time of the latest logistics event.
timelinearrayStage timeline, each item contains name / completed / time / description.
customs_stagesobject|nullTaiwan Customs GC329 Customs clearance progress (null if customs clearance has not yet been completed). See next section.
eventsarray|nullOriginal logistics event history (provided during terminal delivery tracking).

5 status and timeline

Main stage of consolidation (timeline)

stagesignificance
Forecasted (not entered into warehouse)The customer has predicted the order number, but the package has not yet arrived at the Shenzhen Consolidation Warehouse.
Already warehoused (Shenzhen Container Warehouse)Shenzhen Consolidation Warehouse has received the package.
Consolidation and packaging/Taiwan deliveryPacked and shipped, shipped by sea/air to Taiwan.
In transit/delivering to TaiwanCustoms clearance and final delivery after arrival in Taiwan.
Signed forThe recipient has signed for delivery (is_delivered = true).

Customs clearance stages (customs_stages,GC329)

After the package enters Taiwan Customs, customs_stages will bring out the five-stage progress and overall percentage:

{
  "hbl": "691MK539819",
  "trans_type_name": "海運",
  "current_stage_name": "海關放行",
  "progress_percent": 80,
  "is_completed": false,
  "stages": [
    { "code": "XX", "name": "船(機)抵達",   "done": true },
    { "code": "E1", "name": "連線收單建檔", "done": true },
    { "code": "D1", "name": "計稅",        "done": true },
    { "code": "RL", "name": "海關放行",     "done": true },
    { "code": "OW", "name": "出倉",        "done": false }
  ],
  "source": "關港貿單一窗口 GC329"
}

6 error code

HTTPerrorillustrate
401missing_api_key / invalid_api_keyNo/invalid API Key.
403insufficient_scopeThe key has not been granted the shipment:read permission.
404not_foundThis tracking number is not found, or the package has not yet entered the consolidation system.
422validation_failedtracking_number is missing or does not match the format.
429rate_limit_exceededExceeding the request limit per minute, see Retry-After.

7 Program example

$client = new GuzzleHttp\Client(['base_uri' => 'https://0523.tw']);

$res = $client->get('/api/v1/shipment/track', [
    'headers' => ['Authorization' => 'Bearer ' . env('LUCKY_FREIGHT_KEY')],
    'query'   => ['tracking_number' => 'SF1234567890123'],
]);

$d = json_decode($res->getBody(), true)['data'];
echo $d['status'];  // 已入倉
const r = await fetch('https://0523.tw/api/v1/shipment/track?tracking_number=SF1234567890123', {
  headers: { 'Authorization': `Bearer ${process.env.LUCKY_FREIGHT_KEY}` },
});
const { data } = await r.json();
console.log(data.status, data.is_delivered);
curl "https://0523.tw/api/v1/shipment/track?tracking_number=SF1234567890123" \
  -H "Authorization: Bearer $LUCKY_FREIGHT_KEY"

8 best practices

  • Polling frequency : It is recommended to check the same order number every 15-30 minutes; the result is cached on this server for 5 minutes (cached: true means hit).
  • stops polling : Stop polling when is_final = true (signed/returned/cancelled).
  • status driver : Display with status string, use is_delivered / is_final to judge the process to avoid hard coding status_code (different source code definitions are different).
  • No order number :404 Most likely means that the package has not yet entered the consolidation system (the customer has just placed an order but has not sent it), and you can try again later.

9 Support and versions

technical support: howyunqisoftware@gmail.com

API version: v1 (stable).

Change history: 2026-06-01 — Shipment status query API v1 is online.

Shipping API Documentation Apply for an API key