服務市場 / 運費 API 開發文檔
海快集運費試算 API · v1

運費 API 開發文檔

中國 → 台灣海快集運費即時試算 API。以人民幣計價,支援實重與材積 (體積重) 計費,單一請求回傳完整計費明細。專為 0337.tw 等跨境電商平台前台運費報價設計。

海快

運送方式 (Sea Express)

¥10/kg

每公斤費率 (人民幣)

+¥20

計費重未滿 10kg 附加費

<50ms

平均回應時間

1 總覽

運費 API 讓你的平台在前台即時顯示「中國 → 台灣海快集運費」,免去自行維護費率表的負擔。

能做什麼

  • 運費試算 — 帶入包裹重量 (或長寬高材積),回傳該包裹的海快集運費 (人民幣)。
  • 取得費率 — 查詢目前的每公斤費率、附加費門檻與材積換算係數,方便你在前端自行計算或快取。

所有回應皆為 JSON,採統一信封格式:成功時 success: true 並帶 data;失敗時 success: false 並帶 error 代碼與 message

計價貨幣:人民幣 (CNY / ¥)。 本 API 的費率為跨境電商合作專案費率,與 0523.tw 官網 (新台幣) 集運試算分開維護。如需新台幣報價或其他運送方式,請聯繫我們開通。

2 認證與基本資訊

所有請求需帶入 API Key。可放在 Authorization 標頭 (建議) 或 X-API-Key 標頭。

Base URL

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

認證標頭 (擇一)

方式 A — Bearer Token (建議)

Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

方式 B — X-API-Key

X-API-Key: lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

API Key 以 lk_live_ 開頭。請妥善保管,切勿放入前端 JavaScript 或公開的 Git 儲存庫;所有呼叫應由你的伺服器端發出。

速率限制 (Rate Limit)

每把金鑰有每分鐘請求上限,回應標頭會回報剩餘額度:

標頭說明
X-RateLimit-Limit每分鐘允許的請求數
X-RateLimit-Remaining本分鐘剩餘請求數
Retry-After超限時 (HTTP 429) 需等待的秒數

為求最佳前台體驗,建議將 /rates 結果快取數分鐘,並在自家伺服器以相同公式計算,僅在下單關鍵步驟才呼叫 /quote 核對。

3 端點:取得費率

GET /api/v1/freight/rates

列出目前所有啟用的運送方式與費率。無需任何參數。

請求

curl https://0523.tw/api/v1/freight/rates \
  -H "Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx"

回應 200

{
  "success": true,
  "currency": "CNY",
  "data": [
    {
      "method": "sea",
      "name_zh": "海快",
      "name_en": "Sea Express",
      "rate_per_kg": 10,
      "surcharge": 20,
      "min_threshold": 15,
      "volume_divisor": 10000,
      "currency": "CNY"
    }
  ]
}

4 端點:運費試算

GETPOST /api/v1/freight/quote

依包裹重量 / 材積尺寸計算海快集運費。GET (query string) 與 POST (JSON 或 form) 皆可。

請求參數

參數型別必填說明
weightnumber選填*實際重量,單位公斤 (kg)。
lengthnumber選填*長,單位公分 (cm)。
widthnumber選填*寬,單位公分 (cm)。
heightnumber選填*高,單位公分 (cm)。
methodstring選填運送方式,目前為 sea (海快)。省略時預設 sea
* weight 與「完整的 length/width/height至少擇一。兩者皆提供時,系統取「實重」與「材積重」較大者作為計費重。

請求範例 (GET)

curl "https://0523.tw/api/v1/freight/quote?weight=8&method=sea" \
  -H "Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx"

請求範例 (POST JSON)

curl -X POST https://0523.tw/api/v1/freight/quote \
  -H "Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"weight": 5, "length": 40, "width": 30, "height": 30}'

回應 200

{
  "success": true,
  "data": {
    "method": "sea",
    "method_name_zh": "海快",
    "method_name_en": "Sea Express",
    "currency": "CNY",
    "currency_symbol": "¥",
    "actual_weight": 5,
    "volume_weight": 3.6,
    "volume_divisor": 10000,
    "billable_weight": 5,
    "billable_basis": "actual",
    "rate_per_kg": 10,
    "freight": 50,
    "surcharge": 20,
    "surcharge_applied": true,
    "min_threshold": 15,
    "total_fee": 70
  }
}

回應欄位說明

欄位說明
actual_weight實際重量 (kg)。未提供則為 0。
volume_weight材積 (體積) 重 (kg) = 長×寬×高 ÷ 10000。未提供尺寸則為 0。
billable_weight計費重 (kg) = max(實重, 材積重)。
billable_basis計費依據:actual (依實重) 或 volumetric (依材積)。
freight基本運費 = 計費重 × 每公斤費率 (未含附加費)。
surcharge本筆實際加收的附加費 (未觸發為 0)。
surcharge_applied是否觸發附加費 (計費重 < 門檻)。
total_fee最終應收運費 (人民幣,四捨五入到整數)。

5 計費公式與範例

本 API 的計算與 0523.tw 官網海快試算器邏輯一致,僅費率改用合作專案費率。你可在自家系統以相同公式預先計算。

① 材積重 = 長 × 寬 × 高 (cm) ÷ 10000
② 計費重 = max(實重, 材積重)
③ 基本運費 = 計費重 × ¥10/kg
④ 附加費 = 計費重 < 10kg ? +¥20 : ¥0
⑤ 應收運費 = round(③ + ④)

實際範例

¥1008 kg 包裹 → 計費重 8kg < 10kg → 8×10 + 20 = 100
¥20020 kg 包裹 → 計費重 20kg ≥ 10kg → 20×10 = 200 (免附加費)
¥705 kg + 箱 40×30×30cm → 材積重 3.6kg,計費重取 5kg → 5×10 + 20 = 70
¥1203 kg + 箱 60×50×40cm → 材積重 12kg > 實重,計費重 12kg ≥ 10kg → 12×10 = 120(免附加費)
¥150箱 50×50×60cm (僅尺寸) → 材積重 15kg,計費重 15kg ≥ 10kg → 15×10 = 150

6 錯誤碼

錯誤回應一律為 { "success": false, "error": "...", "message": "..." }

HTTPerror說明
401missing_api_key未帶 API Key。請加 Authorization 或 X-API-Key 標頭。
401invalid_api_keyAPI Key 無效。
403key_suspended / key_revoked / key_expired金鑰已停用 / 撤銷 / 過期。
403insufficient_scope金鑰未開通 freight:read 權限。
422validation_failed參數格式錯誤 (型別、範圍)。
422missing_parameters未提供 weight 或完整 length/width/height。
422unsupported_methodmethod 不在可用清單。
429rate_limit_exceeded超過每分鐘請求上限,見 Retry-After。

7 程式範例

伺服器端呼叫範例。請將 lk_live_... 換成你的金鑰,並存放於環境變數。

// composer require guzzlehttp/guzzle
use GuzzleHttp\Client;

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

$res = $client->post('/api/v1/freight/quote', [
    'headers' => [
        'Authorization' => 'Bearer ' . env('LUCKY_FREIGHT_KEY'),
        'Accept'        => 'application/json',
    ],
    'json' => [
        'weight' => 8,
        'method' => 'sea',
    ],
]);

$data = json_decode($res->getBody(), true);
echo '運費 ¥' . $data['data']['total_fee'];  // 運費 ¥100
// Node.js / 伺服器端 — 請勿在瀏覽器暴露金鑰
const res = await fetch('https://0523.tw/api/v1/freight/quote', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.LUCKY_FREIGHT_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ weight: 8, method: 'sea' }),
});
const { data } = await res.json();
console.log(`運費 ¥${data.total_fee}`);  // 運費 ¥100
curl -X POST https://0523.tw/api/v1/freight/quote \
  -H "Authorization: Bearer $LUCKY_FREIGHT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"weight": 8, "method": "sea"}'

8 Laravel 商城整合建議

0337.tw 為 Laravel 商城。建議將運費 API 包成一個後端 Service,在結帳流程呼叫:

  • 於結帳取得購物車總重 (kg) / 材積後,在後端呼叫 /api/v1/freight/quote,把回傳的 total_fee 設為運費。
  • 金鑰放在 .env (例如 LUCKY_FREIGHT_KEY),用 config() 讀取,不要寫死在程式碼或前端。
  • 呼叫失敗 (逾時 / 429) 時,以 /rates 快取下來的費率在本地用同一公式計算作為後備,確保結帳不中斷。
  • 金額為人民幣;若商城以新台幣結帳,請自行套用匯率換算。

Laravel 範例 (Http facade)

// app/Services/LuckyFreightService.php
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Cache;

class LuckyFreightService
{
    public function quote(float $weight): int
    {
        $res = Http::withToken(config('services.lucky.freight_key'))  // 讀 .env
            ->acceptJson()
            ->timeout(8)
            ->get('https://0523.tw/api/v1/freight/quote', [
                'weight' => $weight,
                'method' => 'sea',
            ]);

        if ($res->successful()) {
            return (int) $res->json('data.total_fee');  // 人民幣
        }

        // 後備:用快取費率本地計算,結帳不中斷
        return $this->fallbackQuote($weight);
    }
}

config/services.php'lucky' => ['freight_key' => env('LUCKY_FREIGHT_KEY')],即可於結帳 Controller 注入 LuckyFreightService 取得運費。

單一真實來源: 費率集中由好運器維護。我們調整費率後,API 即時反映,你的商城無需改版即同步更新。

9 支援與版本

技術支援: howyunqisoftware@gmail.com

API 版本: v1 (穩定)。任何破壞性變更將以新版號 (v2) 發布,v1 維持相容。

變更紀錄: 2026-06-01 — 運費 API v1 上線 (海快,人民幣計價)。

申請 API 金鑰