跳轉到
e首發票 e首發票 官方導入指南

常見錯誤代碼

本文說明如何閱讀 Product.EInvoice.WebApi 錯誤與 HTTP 狀態,並提供排查方向。實際欄位名稱、業務代碼與訊息 請以 Swagger UI實際回應 Body 為準。

工程實務上,串接文件常載明需記錄 StatusCodeResultMessage 等欄位(見 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 服務或相依系統暫不可用

業務層錯誤:如何閱讀回應

  1. Swagger 找到該端點宣告之 Response Schema
  2. 比對實際 JSON:成功與否 可能與 HTTP 200 並存(業務失敗仍回 200),切勿只看 HTTP。
  3. 將完整 Body(遮罩敏感欄位)保留於日誌,供客服與稽核還原。

下列 JSON 僅為結構示意官方固定格式承諾:

{
  "StatusCode": "範例欄位名—以實際回應為準",
  "ResultMessage": "錯誤或成功說明文字"
}

錯誤代碼請以 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(若有)

聯絡客服

若遇到文件中未列出的錯誤,請附上以上資訊聯絡客服(電話/電子郵件以 聯絡我們 或官網為準)。


相關文件