FSTS 狀態碼與錯誤碼總表
跨模組共用的語義基線:API、FIX、批次、畫面、DB 必須說同一種錯誤語言,避免對帳失準與客服話術錯亂。12
設計說明書(20)定義原則,工作簿(21)為可維護的權威目錄;本頁為兩者合併摘要。回專案規劃入口:Planning 總覽。
設計原則
| 原則 | 內容 |
|---|---|
| 唯一性 | 錯誤碼不得重號;同一語義在 API / FIX / 批次間須有一致對應 |
| 可判斷性 | 代碼可快速看出模組、類型與嚴重度(ORD / FIX / STL / CA / BAT 等) |
| 可追溯性 | 所有錯誤必須落於 API/FIX/Batch/Audit Log,並帶 TraceId / RunId / ClOrdID / ExecID |
| 可營運 | 每一錯誤碼需定義是否可重試、是否需人工介入、是否需升級通報 |
錯誤碼編碼規則
- 格式:
{模組}-{嚴重度}-{流水號},例如ORD-E-001、FIX-W-014、STL-E-008 - 嚴重度:
I=資訊、W=警示、E=錯誤、F=致命 - 責任分類:
BUS=業務資料、INT=介接、APP=應用、DB=資料庫、OPS=維運、EXT=外部單位 - 每碼必備屬性:觸發條件、用戶提示、技術處置、是否可重試、是否需事件通報
狀態碼目錄(Status_Code_Catalog)
依狀態群組分層;對客顯示欄位決定前台是否透出給終端客戶。
Order / Trade 狀態(對客可見)
| 狀態碼 | 狀態群組 | 觸發來源 | 下游影響 | 備註 |
|---|---|---|---|---|
NEW_PENDING | Order | OMS/API | 待送 FIX / 上手 | 下單成功但未保證送達 |
SENT | Order | OMS/FIX | 等待成交 / 拒單 | 需有送單時間戳 |
ACK | Order | FIX | 可進入成交追蹤 | 若上手提供 |
PARTIAL_FILL | Trade | FIX | 更新庫存/損益/通知 | 需維護累計成交量價 |
FILLED | Trade | FIX | 進入清算、對帳 | 最終交易狀態 |
CANCEL_PENDING | Order | OMS/FIX | 保留剩餘額度與圈存 | 等待撤單回報 |
CANCELED | Order | FIX | 釋放額度/圈存 | 最終狀態之一 |
REJECTED | Order | OMS/FIX/Risk | 不得進入成交 | 需搭配錯誤碼 |
Settlement / CorpAction / Migration 狀態(後台)
| 狀態碼 | 狀態群組 | 觸發來源 | 下游影響 | 備註 |
|---|---|---|---|---|
SETTLEMENT_READY | Settlement | Settlement Batch | 等待銀行/保管行處理 | 日終為主 |
SETTLED | Settlement | Settlement/Bank | 更新現金/庫存最終值 | 供對帳與會計 |
CA_PENDING | CorpAction | CorpAction Batch | 權益尚未入帳 | 需權利快照 |
CA_POSTED | CorpAction | CorpAction Batch | 對帳/通知 | 配息/配股完成 |
MIGRATED | Migration | Migration Tool | 可進對帳 | 切換專用狀態 |
錯誤碼目錄(Error_Code_Catalog)
| 錯誤碼 | 模組 | 嚴重度 | 責任 | 對客訊息 | 可重試 | 人工介入 | 告警 |
|---|---|---|---|---|---|---|---|
ORD-E-001 | OMS | E | BUS | 此帳號未開通電子交易 | N | Y | P2 |
ORD-E-005 | Risk | E | BUS | 可交易額度不足 | N | N | P3 |
ORD-E-011 | OMS | E | BUS | 目前非可交易時段 | N | N | P3 |
FIX-E-003 | FIX | E | INT | 系統忙碌,請稍後再試 | Y | N | P2 |
FIX-E-009 | FIX | E | APP | 交易回報處理中 | N | Y | P1 |
API-W-002 | API | W | OPS | 請稍後再試(429) | Y | N | P3 |
STL-E-004 | Settlement | E | APP | 系統處理中 | N | Y | P1 |
STL-E-008 | Settlement | E | EXT | 系統處理中 | Y | Y | P1 |
CA-E-006 | CorpAction | E | DB | 系統處理中 | N | Y | P1 |
BAT-F-001 | Batch | F | OPS | 系統維護中 | Y | Y | P0 |
DB-F-003 | DB | F | DB | 系統處理中 | N | Y | P0 |
致命級(F)共兩碼:BAT-F-001(日終批次超時中斷)與 DB-F-003(交易 DB 主鍵衝突)——兩者皆 P0 告警、皆需停服排除。6
重試政策(Retry_Policy)
| 類型 | 場景 | 最大重試 | 退避策略 | 超門檻處置 | 責任 |
|---|---|---|---|---|---|
| FIX Session | Logon 失敗 | 5 | 30s / 60s / 120s | 升級至 Interface Lead | Interface |
| FIX Message | 送單後未收到 ACK | 3 | 10s / 30s / 60s | 查詢上手狀態,不可直接重送業務訊息 | OMS+Interface |
| API Outbound | 通知外部通路失敗 | 5 | 指數退避 | 寫 Dead Letter Queue | App |
| SFTP | 銀行/保管行檔案傳輸失敗 | 3 | 5m / 10m / 20m | 人工確認對端狀態 | Interface |
| Batch(非帳務) | 批次失敗 | 2 | 人工檢查後重跑 | 保留 RunId 與差異快照 | Batch |
| Batch(帳務/交割/公司行動) | 批次失敗 | 1 | 需人工審核後重跑 | 封鎖會計/報表下游 | Batch+Business |
關鍵原則:FIX 業務訊息未收 ACK 不得直接重送(避免重複委託);帳務類批次只允 1 次重試且必須人工審核。
批次告警路由(Batch_Alert_Routing)
| Job ID | 作業 | 嚴重度 | 10 分內通知 | 30 分內升級 | 60 分內決策 |
|---|---|---|---|---|---|
B-01 | 盤前主檔同步 | P2 | Batch Lead | App Lead | PM / Commander |
B-05 | 收盤後清算 | P1 | Settlement Lead | Cutover/Batch Commander | Executive Sponsor |
B-06 | 庫存與損益重建 | P1 | Settlement Lead | Business Lead | Commander |
B-07 | 公司行動處理 | P1 | CorpAction Lead | Business Lead | Commander |
B-08 | 會計/報表拋送 | P2 | Finance IT | Finance Manager | Commander |
B-09 | 備援與備份 | P0 | DBA Lead | Infra Manager | Executive Sponsor |
P0 門檻:若 B-09(備份)失敗,不得解除戰情室。8
不得開市:若 B-01(盤前主檔)商品缺漏,不得開市。8
與工作簿(xlsx)關係
- 正式維護權威:
狀態碼與錯誤碼總表.xlsx - 本說明書(20)提供:設計原則、使用規範、高層摘要
- 工作簿內含四個主表:
Status_Code_Catalog/Error_Code_Catalog/Retry_Policy/Batch_Alert_Routing(本 wiki 頁為 21 的同步快照)
使用指引
多數金融專案在 SIT 與上線後最痛的問題不是沒有錯誤,而是「發生錯誤時每個系統講不同語言」。本表為母版:
- API 層:HTTP response body 需帶
{code, severity, traceId},code對應本表 - FIX 層:Reject / Cancel Reject 的
Text(58)需帶本表錯誤碼 - 批次層:
[LEVEL] code description格式寫入作業 log,供告警路由 - 客服話術:依「對客訊息」欄固定口徑,不自行重寫
相關連結
- Planning 總覽
- SA 規格書 — 狀態機定義
- 介接規格書 — API / FIX Mapping
- API-FIX Message Mapping
- 交易中台獨立建置規劃 — 例外案件池與對帳控制
補充資訊
2026-04-23 合併:無 prefix 版本 raw 同步
Source repo 新增無編號 prefix 的同主題 raw(說明書 無 prefix 版,content_hash: sha256:9046e07fa8d6),與 20 號說明書內容等價、章節排版略異(二級 table 展開順序不同)。已加入本頁 sources;事實陳述仍以 20 號版的 heading anchor 為主,維持 block ID 穩定。