Skip to content

內銀系 BST 總覽 Pull 模式

本頁說明

講什麼:三家 BST(銀證轉賬)銀行的接入模式、協議差異、限額體系、異常處理全對比 適合誰:需要深入了解 BST 通道細節的產品經理 前置閱讀出金方式總覽銀行能力矩陣預計閱讀:6 分鐘 負責人:入金產品經理

核心要點:BST(銀證轉賬)是最快的出金通道。三家銀行協議差異大:招行/民生用 Socket 雙向鏈路(秒級響應),天星用 REST API 輪詢(分鐘級響應)。


三家銀行總覽

維度招行(CMB)民生(CMBC)天星(Airstar)
協議Socket 二進制 (GB18030)Socket XML 文本 (SM2 加密)REST API (JSON/UTF-8)
授權模型銀證簽約銀證簽約Mandate 授權(6 狀態)
出金發起方銀行端 + moomoo 端均可僅銀行端可發起moomoo 端 + 銀行端均可
結果獲取實時推送(Socket 回調)實時推送(Socket 回調)輪詢(polling)
入金狀態成功 / 失敗成功 / 失敗NEW / PENDING / SUCCESS / FAILED / REFUNDED
出金狀態0(成功) / -5(超時) / -6(拒絕)0(成功) / -5(超時) / -6(拒絕)NEW / PENDING / SUCCESS / FAILED

核心區別一句話:招行和民生是傳統 Socket 專線(銀行主導),天星是現代 REST API(moomoo 主導)。

各銀行渠道接口詳情

本頁是 BST 協議的總覽對比。每家銀行的渠道側接口字段、moomoo 側適配映射、完整匹配規則等詳情,請查閱各銀行獨立頁面:


銀證授權(Mandate)

授權模型對比

招行 / 民生天星
術語銀證簽約Mandate 授權
發起方式用戶在銀行端完成簽約用戶在 moomoo 端發起,銀行端確認
狀態數量2 個(已簽約 / 未簽約)6 個(完整狀態機)
多市場每個市場單獨簽約一次授權自動映射 3 個市場
核心標識銀行卡號mandate_id

天星 Mandate 狀態機

自動 3 市場映射:用戶完成一次天星 Mandate 授權後,系統自動為 HK(港股)、US(美股)、CN(A 股通)三個市場創建銀證綁定關係。用戶不需要分別為每個市場單獨操作。

mandate_id 是天星的核心標識:不同於招行/民生以銀行卡號作為主鍵,天星以 mandate_id 作為銀證關係的唯一標識。銀行卡管理、入金、出金的所有操作都通過 mandate_id 串聯。


入金流程對比

通用 BST 入金

所有 BST 銀行共享同一個入金邏輯框架:

  1. 用戶發起入金 → 系統創建入金指令 → 發送到銀行 → 銀行處理 → 結果回傳 → 入賬

天星入金特殊性

兩種入金來源:

來源source 值說明
用戶在 moomoo 端發起1用戶在 moomoo App 點擊入金
用戶在銀行端發起2用戶在天星銀行 App 發起轉賬到證券帳戶

銀行端發起(source=2)是天星獨有的能力——招行/民生的 BST 入金只能從 moomoo 端發起。

輪詢機制:

天星不像招行/民生通過 Socket 實時推送結果,而是由 moomoo 系統主動輪詢:

Job 名稱職責輪詢次數說明
AsbBstCreateJob創建入金指令發送入金請求到天星
AsbBstCreateResultJob輪詢入金結果最多 60 次 + 慢輪詢每次間隔輪詢天星 API 查詢入金狀態
AsbBstDepositJob入金到賬處理確認入金成功後執行內部到賬邏輯

前 60 次每 5 秒輪詢一次;超過 60 次後切換為每 5 分鐘輪詢一次(慢輪詢),持續直到獲得終態或人工介入。

REFUNDED 退款狀態(天星獨有):

天星入金有一個其他 BST 銀行沒有的狀態——REFUNDED。表示入金已成功到賬後,銀行又發起了退款。

觸發場景:

  • 銀行側發現交易異常後主動退款
  • 合規原因觸發退款

系統處理:收到 REFUNDED 狀態後,需要沖正已入賬的資金,並通知用戶。這是需要運營關注的異常場景。


出金流程對比

通用 BST 出金

BST 出金遵循凍結-轉賬-釋放三步模式:

為什麼先凍結? 因為從發送指令到銀行確認之間有時間窗口。如果不凍結,用戶可能在這段時間內花掉這筆錢,導致帳戶出現負餘額。凍結保證了出金金額在處理期間不會被其他操作使用。

天星出金特殊性

兩種出金模式:

模式說明
moomoo 端發起用戶在 moomoo App 點擊出金,系統通過 API 發送指令
銀行端發起用戶在天星銀行 App 發起從證券帳戶轉出到銀行(天星獨有)

輪詢機制:

Job 名稱職責重試說明
AsbBstTransfer出金轉賬指令最多 10 次發送出金請求並輪詢結果
SyncAsbBstWithdraw銀行端出金拉取每分鐘 cron拉取銀行端發起的出金請求,創建 moomoo 側出金任務

流程:moomoo 端發起出金 → AsbBstTransfer 輪詢最多 10 次 → 仍未完成則標記異常需人工確認。銀行端發起出金 → SyncAsbBstWithdraw 每分鐘拉取 → 創建出金任務處理。

招行 / 民生出金

招行和民生通過 Socket 連接發送出金指令:

  1. 出金服務調用銀證服務(cmb_stock_trans / ms_stock_bank_transaction
  2. 加密請求數據
  3. 通過 Socket 發送到銀行的 exit_server
  4. 銀行處理後通過同一條雙向鏈路實時返回結果
  5. 結果碼:0(成功)/ -5(超時,自動切換備用 exit_server 重試)/ -6(銀行拒絕)

三層限額體系

BST 通道對單筆金額、累計金額、每日金額分層控制。詳細說明見 出金規則手冊 § 三層限額

天星限額詳情

維度HKDUSD
單筆上限(max)300 萬50 萬
累計報警(alarm)4,000 萬1,000 萬
每日熔斷(stop)1,500 萬300 萬

線上開戶最低入金:HKD 1 萬 / USD 1,500 / CNH 1 萬

三層如何協作

  • 第一層(單筆):超過 300 萬 HKD 的單筆出入金直接拒絕
  • 第二層(累計報警):累計達到 4,000 萬 HKD 時觸發告警通知運營,但交易不中斷
  • 第三層(每日熔斷):當日累計達到 1,500 萬 HKD 時自動關閉當日自動出入金,後續需人工處理

招行 / 民生限額

招行/民生限額說明

招行和民生的限額由銀行側系統控制(非 moomoo 配置),具體數值需向銀行確認。已知其具備單筆上限和每日限額機制,超限時銀行側直接拒絕並返回回調碼 -6。如遇超限問題,參考出金排障 § BST 回調異常


線上開戶(天星獨有)

天星支持三合一線上開戶流程——新客戶可以在一個連貫的流程中完成:

  1. 開立證券帳戶:完成 KYC 身份驗證
  2. Mandate 授權:授權天星銀行進行銀證轉賬
  3. 首筆入金:完成首筆入金到證券帳戶

這個流程的價值在於新客獲取——降低了新用戶從註冊到可交易的門檻。傳統流程需要用戶在多個系統間切換(開戶 → 去銀行簽約 → 回來入金),三合一流程在 moomoo App 內一站式完成。

線上開戶的入金限制:首筆入金有最低金額要求(HKD 1 萬 / USD 1,500 / CNH 1 萬),高於普通入金的最低限額,目的是確保新客戶有足夠資金進行交易。

僅天星支持

招行和民生的銀證簽約需要用戶在銀行端完成,不支持在 moomoo 端完成三合一流程。


定時任務

天星任務清單

Job 名稱職責頻率重試依賴
AsbBstCreateJob創建銀證入金指令觸發式用戶入金請求
AsbBstCreateResultJob輪詢入金結果定時60 次後轉慢輪詢AsbBstCreateJob
AsbBstDepositJob入金到賬處理觸發式AsbBstCreateResultJob 返回 SUCCESS
AsbBstTransfer出金轉賬 + 輪詢結果觸發式最多 10 次審批通過
SyncAsbBstWithdraw銀行端出金拉取每分鐘 cron銀行端發起出金
AsbBstCreateFromBankJob銀行端入金處理觸發式銀行端發起入金
AsbBstCreateRetryJob入金創建重試觸發式AsbBstCreateJob 失敗

任務鏈路

入金:AsbBstCreateJob(moomoo 端)/ AsbBstCreateFromBankJob(銀行端)→ AsbBstCreateResultJob(60 次快輪詢 + 慢輪詢)→ AsbBstDepositJob(到賬)

出金:moomoo 端:AsbBstTransfer(輪詢 10 次)→ 超時需人工確認 | 銀行端:SyncAsbBstWithdraw(每分鐘拉取)→ 創建出金任務

招行 / 民生任務

服務名銀行職責
cmb_stock_trans招行銀證轉賬服務,Socket 二進制通信
ms_stock_bank_transaction民生銀證轉賬服務,Socket XML 文本通信

招行/民生採用實時雙向 Socket,不需要輪詢任務——銀行處理完成後通過同一連接直接推送結果。

完整定時任務列表 → 定時任務與監控


異常場景手冊

授權異常(5 類)

#異常症狀原因處理
1授權超時Mandate 停在 PendingAuthorise 狀態銀行處理延遲或通信中斷等待 + 人工查詢銀行側狀態
2授權失敗Mandate 變為 RejectAuthorise用戶信息校驗不通過 / 銀行側風控排查失敗原因,引導用戶重新發起
3授權解除Mandate 變為 Revoked用戶發起解除授權確認用戶意圖,必要時重新授權
4部分市場授權失敗3 個市場中部分綁定成功某個市場的銀證配置異常檢查失敗市場的配置,手動補充綁定
5銀行端解除未同步銀行側已解除但 moomoo 仍顯示 Authorised同步延遲或回調丟失手動同步 Mandate 狀態

入金異常(7 類)

#異常症狀原因處理
1指令創建失敗AsbBstCreateJob 報錯參數異常 / Mandate 非 Authorised檢查 Mandate 狀態和請求參數
2輪詢超時60 次輪詢後仍為 PENDING銀行處理異常人工查詢銀行側狀態
3入金失敗狀態變為 FAILED銀行拒絕(餘額不足/限額等)查看銀行返回的錯誤碼
4入金退款狀態變為 REFUNDED銀行發起退款沖正已入賬資金,通知用戶
5銀行端入金未同步source=2 入金 moomoo 未收到回調丟失手動查詢天星 API 補錄
6金額不一致到賬金額與請求金額不符銀行側扣費或匯率差異核對銀行側交易明細
7重複入金同一筆入金創建了多條記錄去重機制失效檢查 procedure_id/request_id/bank_ref_id

出金異常(5 類)

#異常症狀原因處理
1出金指令失敗AsbBstTransfer 報錯參數異常 / 銀行拒絕檢查錯誤碼,釋放凍結資金
2輪詢超時10 次輪詢後仍 PENDING銀行處理異常人工查詢銀行側狀態
3凍結未釋放出金失敗但資金仍凍結釋放流程異常手動釋放凍結
4銀行端出金未同步用戶從銀行端發起出金但 moomoo 未扣款回調丟失手動查詢天星 API,執行扣款
5部分出金銀行只轉了部分金額銀行側限額或餘額不足核對金額差異,處理剩餘部分

監控告警

天星 13 項告警

#告警項觸發條件嚴重度處理方式
1授權創建超時Mandate 在 PendingAuthorise 超過閾值檢查天星 API 連通性
2授權失敗率突增單位時間內 RejectAuthorise 數量超限排查銀行側異常
3入金創建失敗AsbBstCreateJob 連續失敗檢查請求參數和 API 狀態
4入金輪詢超時AsbBstCreateResultJob 進入慢輪詢仍無終態人工查詢銀行側狀態
5入金退款收到 REFUNDED 狀態立即沖正,通知用戶
6出金輪詢超時AsbBstTransfer 10 次用盡人工確認銀行側狀態
7銀行端出金拉取異常SyncAsbBstWithdraw cron 報錯嚴重檢查天星 API 連通性
8凍結未釋放出金失敗但凍結未回滾嚴重手動釋放凍結
9每日熔斷觸發當日累計金額達到 stop 閾值運營確認後決定是否恢復
10累計報警觸發累計金額達到 alarm 閾值運營關注,評估風險
11重複交易檢測procedure_id/request_id 重複檢查去重邏輯
12API 連通性異常天星 API 響應超時或錯誤率升高嚴重聯繫天星銀行技術支持
13銀行端發起量異常source=2 交易量突增排查是否為正常業務波動

錯誤碼

錯誤碼體系

天星錯誤碼按操作類型劃分前綴,而非按業務領域:

錯誤碼前綴操作類型說明
14060xxxx創建授權富途發起 Mandate 創建時的錯誤
14061xxxx取消授權富途發起取消 Mandate 的錯誤
14062xxxx查詢授權富途查詢 Mandate 狀態的錯誤
14063xxxx富途發起轉賬富途發起入金/出金轉賬的錯誤
14064xxxx查詢轉賬富途查詢轉賬狀態的錯誤
14067xxxx銀行發起轉賬銀行端發起轉賬時 moomoo 側校驗錯誤
14072xxxx通知轉賬結果銀行通知轉賬結果時的錯誤
14073xxxx通知授權結果銀行通知授權結果時的錯誤

招行/民生的錯誤碼

招行和民生通過 Socket 回調返回結果碼(0/-5/-6),沒有獨立的錯誤碼系列。詳細的回調處理邏輯見 出金數據字典 § 銀行回調結果碼


BST 通道對比

天星 vs 招行/民生

對比維度天星(Airstar)招行 / 民生
協議REST API(HTTP + JSON)Socket 二進制協議
編碼UTF-8GB18030
發起方moomoo + 銀行雙向招行雙向 / 民生僅銀行端
授權模型Mandate(6 狀態)銀證簽約(2 狀態)
多市場映射一次授權 → 3 市場自動映射每市場單獨簽約
核心標識mandate_id銀行卡號
結果獲取輪詢(polling)實時推送(Socket 回調)
入金狀態NEW/PENDING/SUCCESS/FAILED/REFUNDED成功/失敗
出金狀態NEW/PENDING/SUCCESS/FAILED0(成功)/-5(超時)/-6(拒絕)
入金輪詢60 次快輪詢 + 慢輪詢無需輪詢
出金輪詢10 次無需輪詢
退款機制支持 REFUNDED 狀態
線上開戶支持三合一不支持
錯誤碼按操作類型劃分(14060~14073 系列)0 / -5 / -6

BST vs 其他出金通道

對比維度BST 銀證網銀(匯豐/恒生)FPS傳統通道
自動化全自動(唯一)半自動半自動人工
到賬速度秒~分鐘分鐘~小時分鐘級小時~天
協議複雜度高(Socket/API)低(企業網銀)中(FPS API)低(網銀/電匯)
運營介入僅異常時Confirm 步驟Confirm 步驟全程介入
適用銀行招行/民生/天星匯豐/恒生中銀/渣打/廣發所有銀行
限額控制三層限額體系銀行側限額FPS 系統限額各銀行不同

讀完之後

我想...去看
深入了解招行的 Socket 二進制協議招商銀行 CMB
深入了解民生的 XML 文本協議民生銀行 MS
深入了解天星的 REST API + RSA-OAEP天星銀行 Airstar
看 BST 在出金體系中的角色出金方式總覽
看自動出金的 6 個條件和三層限額出金規則手冊
查 Mandate 狀態碼和天星錯誤碼統一錯誤碼中心
看 BST 任務的運行頻率和告警定時任務與監控
看其他銀行的接入方式銀行能力矩陣
這個頁面有幫助嗎?

内部业务文档 · 仅限 moomoo 团队使用