常見錯誤代碼¶
本文說明如何閱讀 Product.EInvoice.WebApi 錯誤與 HTTP 狀態,並提供排查方向。實際欄位名稱、業務代碼與訊息 請以 Swagger UI 及實際回應 Body 為準。
工程實務上,串接文件常載明需記錄 StatusCode、ResultMessage 等欄位(見 systemlead-einvoice docs/tech/API說明與開發注意事項.md);請以您收到之 JSON 為準,勿假設為下列範例格式。
HTTP 狀態碼(一般性說明)¶
| HTTP 狀態碼 | 可能意義(實際依伺服器為準) |
|---|---|
200 OK |
請求已處理;仍須檢查 Body 內業務成功/失敗欄位 |
400 Bad Request |
參數或格式不符合契約 |
401 Unauthorized |
未帶或帶錯 apiKey Header(見 Swagger securityDefinitions) |
403 Forbidden |
無權限執行該操作 |
404 Not Found |
路徑錯誤或資源不存在 |
429 Too Many Requests |
觸發節流(若有);應退避並查詢狀態 |
500 Internal Server Error |
伺服器錯誤;可退避重試並保留現場 |
503 Service Unavailable |
服務或相依系統暫不可用 |
業務層錯誤:如何閱讀回應¶
- 以 Swagger 找到該端點宣告之 Response Schema。
- 比對實際 JSON:成功與否 可能與 HTTP 200 並存(業務失敗仍回 200),切勿只看 HTTP。
- 將完整 Body(遮罩敏感欄位)保留於日誌,供客服與稽核還原。
下列 JSON 僅為結構示意,非官方固定格式承諾:
錯誤代碼請以 Swagger 與實際回應為準
部分舊文件或截圖可能出現 A/E/T/I/F 等系列代碼表,未必與現行 Swagger 逐條對應。整合時請以 Swagger Schema 與實際回應 Body 為準,避免誤判。
常見錯誤處理建議¶
處理 5xx/連線逾時
採用退避重試;重試前以 Inquire(如 GetInvoicesStatus)確認是否已寫入,避免重複開立。
處理 429
放慢呼叫頻率;實際配額與 Header 欄位以服務商/合約為準。
字軌不足
依營運流程申請字軌並追蹤剩餘量。Swagger v1 未宣告 Webhook;建議以定期 Inquire 查詢或依合約約定之預警機制監控字軌用量。
紀錄留存建議¶
遇到錯誤時,請至少保留:
- 發生時間與環境(Base URL)
- 路徑與 HTTP 狀態碼
- Request/Response Body(遮罩 apiKey、簽章用 Salt)
- 訂單編號、發票號碼或客戶端 Idempotency Key(若有)
聯絡客服¶
若遇到文件中未列出的錯誤,請附上以上資訊聯絡客服(電話/電子郵件以 聯絡我們 或官網為準)。