ST Pay 商戶 APIST Pay 商戶 API
指南
API
錯誤碼
商戶後台
AI 協助對接
  • 繁體中文
  • 简体中文
  • English
指南
API
錯誤碼
商戶後台
AI 協助對接
  • 繁體中文
  • 简体中文
  • English
  • 開始

    • 概覽
    • 請求與回應格式
    • 身分驗證與 IP 白名單
    • 簽章
    • 商戶後台
    • AI 協助對接
  • API

    • 代收建單
    • 代付建單
    • 查單
    • Callback 通知
  • 參考

    • 訂單狀態與金額
    • 重複請求與結果確認
    • 錯誤碼
    • 銀行代碼
    • 上線前檢查清單

錯誤碼

建單時,ST Pay 依以下順序檢查,同時違反多項時只回傳第一個:

簽章 → 時間戳 → 來源 IP → 商戶狀態 → 必填欄位與格式 → callback_url 的環境與位址 → 單筆上下限 → 商戶單號重複 →(代收)同一會員待審批單上限 →(代收)收款帳戶與尾數分配 /(代付)餘額。

在這之前:本文不是 JSON 物件或 Content-Type 不是 application/json,直接回 invalid_parameter;沒送 api_identity 或 sign 回 invalid_signature。

codeHTTPmessage原因與處理方式
invalid_signature401簽章驗證失敗api_identity 錯誤、憑證已停用,或簽章不符。請依簽章的範例核對程式,並確認使用對應環境的憑證。欄位值送成數字或布林會回這個或 invalid_parameter,所有值請以字串送出;沒送 api_identity 或 sign 也是。
timestamp_expired400請求時間與伺服器時間相差超過 5 分鐘,請校正您的伺服器時間(伺服器目前時間:yyyy-MM-dd HH:mm:ss)timestamp 與 ST Pay 伺服器時間相差超過 5 分鐘(過去或未來都算)。訊息附上伺服器目前時間,可據此看出差距;請開啟 NTP 校正伺服器時間,並在送出當下才取時間簽章。
ip_not_allowed403來源 IP 不在白名單請確認伺服器實際的出口 IP,並請 ST Pay 加入白名單;加入後約 1 分鐘生效。來源 IP 不在任何白名單時,請求在閘道就被擋下:回 HTTP 403,本文是 HTML 而不是 JSON,處理方式相同。
merchant_disabled403商戶已停用商戶停用期間不能建單,請聯繫 ST Pay。
permission_denied403無此操作權限通常是 /api/v1/ 底下的路徑拼錯。用 GET,或路徑不在 /api/v1/ 底下時,閘道直接回 HTTP 404(本文不是 JSON)。
missing_parameter400缺少必填欄位必填欄位沒送、為 null 或空字串;callback_url 全是空白;銀行轉帳代付缺少銀行欄位;查單沒送任何單號。
invalid_parameter400欄位值不合法欄位值的格式、長度、字元或列舉值不合法;欄位值不是字串;本文不是合法的 JSON 物件,或 Content-Type 不是 application/json;callback_url 格式不合(規則見 Callback 網址);FPS 代付帶了銀行欄位;銀行代碼不在清單內。
invalid_amount400金額格式不正確金額為 0、負數、超過 2 位小數(照字面算,1000.500 也算 3 位)、大於 9999999999999999.99,或不是數字。
missing_member_identity400請提供會員唯一識別或真實姓名代收建單時 merchant_user_id 與 payer_name 都沒送。
invalid_callback_url400Callback 網址不符合規定:不可為本機或內網位址建單的 callback_url 主機是本機、內網位址、內部網域、非標準的 IP 寫法。見 Callback 網址。格式錯誤(不是網址、超過 500 字元、含空白或其他格式規則,見同一節)回 invalid_parameter。
amount_out_of_range422金額超出限額原始金額或代付金額超出單筆上下限。
merchant_order_no_duplicate409商戶單號重複見重複請求與結果確認。
user_active_orders_limit422有效訂單已達上限同一會員已有 10 張待審批的代收單。請等其中的單完成或到期後再建立。
channel_full422通道已滿,請輸入其他金額再試同一通道、同一原始金額的辨識尾數已全部被待審批單占用。請付款人換一個金額再試。
no_available_card422通道已滿,請輸入其他金額再試該通道目前沒有可用的收款帳戶。可稍後再試或改用另一個通道;持續發生請聯繫 ST Pay。
insufficient_balance422商戶餘額不足代付建單時,可用餘額小於代付金額加手續費。
order_not_found404查無此單訂單不存在、不屬於您,或已超過保存期限被刪除。
query_conflict400訂單號與商戶單號指向不同訂單查單時同時送了兩個單號,但它們不是同一張單。
internal_error500系統錯誤,請以商戶單號查單確認結果ST Pay 內部錯誤,訂單可能已建立也可能沒有。不要直接當作失敗,請以商戶單號查單確認。

channel_full 與 no_available_card 的 message 相同,請以 code 區分。

收到 invalid_parameter、invalid_signature 等錯誤又找不出原因時,請提供 api_identity、商戶單號(查單則提供查詢的單號)與發生時間(UTC+8),請 ST Pay 對接窗口查詢 API 錯誤紀錄,可查到是哪一欄有問題或簽章失敗的原因。ST Pay 只記錄 api_identity 正確的請求;api_identity 本身錯誤時查不到,請先核對。

Prev
重複請求與結果確認
Next
銀行代碼