Skip to content

銀行卡與授權

本頁說明

講什麼:銀行卡生命週期(狀態與認證)、數據模型核心字段、幣種與帳戶類型位圖、卡-通道能力矩陣、綁卡/解綁規則與系統流程、BST 銀證授權模型(招行/民生 vs 天星 Mandate)、eDDA 授權流程與擴展字段、線上開戶三合一流程、銀行卡 API 概覽,以及常見異常場景與排查指南 適合誰:需要了解銀行卡管理業務規則的產品經理和運營人員 前置閱讀新人導讀預計閱讀:12 分鐘 負責人:入金產品經理


銀行卡生命週期

卡狀態

狀態碼名稱含義典型場景運營關注點
0待審核卡已添加但尚未生效,不可用於出入金線上開戶添加卡,等待首筆入金驗證若長時間停留(>24 小時),檢查用戶是否完成首筆入金
1已生效卡正常可用普通綁卡成功;或在線開戶完成首筆入金後生效正常狀態,可用於所有出入金操作
2已刪除卡已停用/刪除,不可恢復用戶解綁或運營刪除終態。用戶需重新綁卡,BST/eDDA 授權同時作廢

卡認證

認證是對銀行卡持有人身份的驗證——與「狀態」獨立,一張已生效的卡可以是未認證的。

認證碼含義觸發場景對出入金的影響
0未認證預設狀態入金不受影響;首次出金到該卡會被攔截
1認證中已提交憑證,等待審核入金不受影響;出金等待認證完成
2已認證已通過認證無限制

認證來源與觸發條件

來源代碼觸發場景認證方式需用戶操作?
香港在線開戶入金hk_online用戶通過線上開戶入金入金成功自動認證否(自動)
首次出金withdraw用戶首次向該卡出金需上傳銀行對帳單/轉帳截圖
綁定銀證bst完成 BST 簽約/Mandate 授權銀行側已驗證身份,自動認證否(自動)
綁定 eDDAedda完成 eDDA 授權銀行側已驗證身份,自動認證否(自動)
人工驗證manual運營在 CRM 手動通過運營審核憑證後標記否(運營操作)

認證流程(首次出金場景)

首次出金到未認證卡是最常見的認證觸發場景:

生命週期流轉

在線開戶的「待審核」卡:通過 CheckSave 接口創建(operation=1 開戶中 / operation=0 入金中)。只有完成首筆入金後,系統調用 TakeEffect 將卡從待審核→已生效。

存儲位置與數據表

銀行卡數據存儲在 web_account 數據庫,由 bankcard_service/(PHP,端口 20005)管理。

表名存什麼關鍵字段說明
bank_card銀行卡主記錄id, uid, number, status, verify, account_type一行 = 一張銀行卡
bank_card_operation_log操作日誌card_id, operation, operator, created_at每次綁卡/解綁/狀態變更都有記錄,不可刪除
bank_card_certificate認證憑證card_id, file_url, status用戶上傳的銀行對帳單/轉帳截圖
bank_info預置銀行資訊id, bank_name, bank_code, swift_code銀行名稱/代碼/SWIFT/Logo 等(唯讀)
bank_card_asb_bst天星銀證擴展card_id, mandate_id, status天星 Mandate 授權資訊
bank_card_eddaeDDA 擴展(恒生)card_id, limit_amount, status恒生 eDDA 授權資訊
bank_card_hsbc_eddaeDDA 擴展(匯豐)card_id, mandate_identification, status匯豐 eDDA 授權資訊

運營排查技巧:出入金問題排查時,先在 bank_card 表確認卡狀態(status)和認證(verify),再根據通道類型查對應擴展表。


銀行卡數據模型

核心字段

字段業務含義示例運營常用場景
id卡唯一 ID12345CRM 查詢銀行卡的主鍵
uid用戶 ID(牛牛號)800001234關聯到用戶
number銀行帳號012-345-678-901匹配銀行流水、核對卡號
bank_id預置銀行 ID(0=自定義銀行)23bank_id > 0 使用預置資訊;= 0 需手動填寫
bank_code銀行內部代碼CMBHK系統內部路由出入金通道
bank_swiftSWIFT 代碼(HK 卡必填)CMBCHKHH國際匯款必需
area卡所屬地區hk / cn / us / other不同地區有不同的必填字段要求
currency_type幣種位圖(見下)7決定該卡支持哪些幣種的出入金
account_type帳戶類型位圖(見下)2決定該卡支持哪些出入金通道
status卡狀態:0/1/210=待審核、1=已生效、2=已刪除
verify認證狀態:0/1/220=未認證、1=認證中、2=已認證
third_party_flag第三方卡標記00=本人卡、1=第三方卡(出金有額外限制)
address_status地址狀態00=正常、1=異常(可能影響出金)

不同地區卡的必填字段

地區area必填字段可選字段典型銀行
香港hkbank_swift, bank_namebank_address匯豐、恒生、中銀、招行(HK)、民生
大陸cnopening_address(開戶行地址)bank_province, bank_city招商、工商、建設
美國usrouting_numberbank_addressBank of America, Chase
其他otherbank_namebank_swift, bank_address新加坡、英國等海外銀行

幣種位圖(currency_type)

系統用位圖表示一張卡支持哪些幣種——每個 bit 代表一種貨幣:

Bit幣種說明
01HKD(港幣)港股交易、港幣出入金
12USD(美元)美股交易、美元出入金
24CNH(離岸人民幣)A 股通交易、人民幣出入金

組合示例

currency_type二進制支持幣種常見於
1001僅 HKD港幣單幣種卡
3011HKD + USD雙幣種卡
7111HKD + USD + CNH最常見——大部分香港銀行卡

運營技巧:如果用戶反饋「某個幣種無法入金/出金」,先檢查銀行卡的 currency_type 是否包含對應幣種位。例如 currency_type = 3 不支持 CNH 出入金。

帳戶類型位圖(account_type)

同樣用位圖表示卡支持哪些轉帳能力:

Bit類型含義如何獲得
01Regular普通銀行卡,支持網銀/FPS 等手動轉帳方式綁卡時自動賦予
12BST已綁定銀證通道(招行/民生/天星)完成銀證簽約後系統自動加上
24eDDA已授權 eDDA 代扣(恒生/匯豐)完成 eDDA 授權後系統自動加上

組合示例

account_type二進制含義可用通道
1001僅普通網銀入金、網銀/FPS 出金
3011普通 + BST上述 + BST 入金/出金
5101普通 + eDDA上述 + eDDA 代扣入金
7111全能力所有出入金通道

帳戶類型是自動設置的

account_type 不是用戶選擇的——它由綁卡/授權流程自動設置。用戶完成銀證簽約後,卡的 account_type 自動加上 BST 位(|= 2);完成 eDDA 授權後自動加上 eDDA 位(|= 4)。解綁時相應位會被清除(&= ~2&= ~4)。

運營快速判斷(不需要做位運算):

  • 含 BST 位的值:2、3、6、7 → 可使用銀證通道
  • 含 eDDA 位的值:4、5、6、7 → 可使用 eDDA 代扣
  • 僅 Regular(無 BST):1、5 → 沒有銀證通道
  • 僅 Regular(無 eDDA):1、2、3 → 沒有 eDDA 代扣

運營排查:用戶反饋「看不到 BST/eDDA 入金選項」時,檢查 account_type 的值是否在上述列表中。

轉帳方式(methods)

每張卡攜帶一個轉帳方式列表,標明可用的出入金渠道:

method 值類型含義對應銀行對應 account_type 位
normal普通普通轉帳(網銀/FPS/ATM 等)所有銀行bit 0 (Regular)
bst_cmbhkBST招行銀證招商銀行(香港)bit 1 (BST)
bst_cmbchkBST民生銀證民生銀行bit 1 (BST)
bst_asbBST天星銀證天星銀行bit 1 (BST)
edda_haseeDDA恒生 eDDA 代扣恒生銀行bit 2 (eDDA)
edda_hsbceDDA匯豐 eDDA 代扣匯豐銀行bit 2 (eDDA)

卡-通道能力矩陣

銀行卡的 account_type 決定了哪些出入金通道可用:

帳戶類型網銀入金BST 入金eDDA 入金BST 出金網銀出金FPS 出金
Regular (1)
BST (2)
eDDA (4)
BST + eDDA (6)

通道過濾邏輯

用戶可以綁定多張不同類型的卡。發起出入金時,系統根據選中卡的 account_typemethods 列表過濾可用的入金方式或出金通道。

App 端顯示規則

  • 用戶選了一張 Regular 卡 → App 只顯示「網銀入金」,不顯示 BST/eDDA 選項
  • 用戶選了一張 BST 卡 → App 顯示「網銀入金」和「銀證入金」兩個選項
  • 用戶選了一張 eDDA 卡 → App 顯示「網銀入金」和「eDDA 代扣入金」兩個選項

出金端顯示規則同理:根據卡的 account_type 決定顯示哪些出金通道按鈕。


綁卡 / 解綁規則

綁卡規則

規則說明違反時表現
HK 卡必須有 SWIFT香港銀行卡綁卡時 bank_swift 為必填(「其他銀行」除外)綁卡接口返回參數校驗錯誤
大陸卡必須有開戶地址area = cnopening_address 為必填同上
美國卡必須有 routing numberarea = usrouting_number 為必填同上
卡號唯一性同一 uid + number 組合不可重複綁定提示「該卡已綁定」
預置銀行優先bank_id > 0 時使用預置銀行資訊(名稱/代碼/SWIFT);bank_id = 0 需手動填寫自定義銀行需用戶自行確認資訊準確性
在線開戶卡通過 CheckSave 創建,status = 0(待審核),首筆入金成功後 → status = 1待審核期間不可用於出入金
已刪除卡可重新綁定同一 uid + number,若舊卡 status=2,可創建新的綁卡記錄新卡是全新記錄(新 id),舊卡的 BST/eDDA 授權不會繼承

綁卡系統流程

解綁規則

場景操作步驟前置條件運營注意
普通卡解綁status = 2無進行中的出入金確認無待處理的 Procedure
BST 卡解綁① 取消銀證簽約(CancelBst)→ ② account_type &= ~2 → ③ 設 status = 2招行/民生需銀行端解除簽約;天星需取消 MandateBST 簽約作廢後,銀證通道不可用。需先完成未結出金
eDDA 卡解綁① 取消 eDDA 授權 → ② account_type &= ~4 → ③ 設 status = 2恒生/匯豐 eDDA 授權需先失效eDDA 代扣通道不可用
BST + eDDA 卡解綁按以上兩步分別取消,再刪卡兩種授權都需先失效全部通道授權作廢

解綁不可逆

status = 2 是終態——被刪除的卡無法恢復,用戶需要重新綁卡。BST/eDDA 解綁意味著對應的銀證簽約或代扣授權也同時作廢。

用戶常見問題:「我不小心解綁了銀行卡怎麼辦?」——只能重新綁卡。如果是 BST 卡,還需要重新走銀證簽約流程。如果是 eDDA 卡,需要重新完成 eDDA 授權。

運營注意:解綁前必須檢查該卡是否有進行中的出入金 Procedure。有進行中的出金(特別是 pending(transfer_manual) 狀態)時不要解綁——等出金完成後再處理。


BST 銀證授權與銀行卡

在 BST 銀證通道中,銀行卡管理和銀證授權(Mandate)緊密綁定——用戶不能只綁卡不授權,也不能只授權不綁卡。

授權模型差異

維度招行 / 民生天星
核心標識銀行卡號mandate_id
綁定流程銀行端完成銀證簽約 → 通知 moomoomoomoo 端發起 Mandate 授權 → 銀行確認
簽約發起方只能銀行端發起moomoo 可主動發起
解綁影響解除簽約 = 不可使用 BST取消 Mandate = 不可使用 BST
多市場每個市場需單獨簽約一次授權自動映射 3 個市場(HK/US/HKCC)
通信方式SM2 Socket 雙向鏈路(實時推送)REST API(需輪詢結果)
授權狀態2 種(開通/未開通)6 種(含 WAITING、FAIL、CANCEL)
自動認證簽約成功 → 卡自動認證(verify=2)授權成功 → 卡自動認證(verify=2)

招行/民生銀證簽約流程

招行和民生的銀證簽約由銀行端發起,moomoo 被動接收:

招行 vs 民生的差異

維度招行民生
服務名cmb_stock_transms_stock_bank_transaction
市場粒度每個市場單獨簽約(HK/US/HKCC 分別操作)每個市場單獨簽約
出金收款人中文名英文名(payee_name 必須英文)
流水號字段bank_tx_seqOrgRefNo
異常恢復sync_bst_data_helper 補償自動重連 + 重拉

天星 Mandate 詳解

天星以 mandate_id 而非銀行卡號作為銀證關係的核心標識。意味著:

  • 入金:通過 mandate_id 關聯到對應的銀行卡和用戶
  • 出金:通過 mandate_id 確認授權有效後才能發送出金指令
  • 查詢:所有銀證相關的狀態查詢都以 mandate_id 為主鍵

3 市場自動映射:用戶完成一次 Mandate 授權後,系統自動為 HK(港股)、US(美股)、HKCC(港股通)三個市場創建銀證綁定。用戶在 moomoo 做港股、美股、A 股交易時,入金出金都走同一個銀證通道。

天星授權流程(用戶視角)

步驟用戶操作用戶感知預計耗時
1在 moomoo 選擇天星銀行入金顯示天星銀證入金選項
2點擊「授權簽約」跳轉到天星銀行授權頁面
3在天星頁面確認授權輸入銀行密碼/驗證碼1-2 分鐘
4授權完成,返回 moomoo顯示「授權成功」秒級
5可以開始入金/出金BST 通道可用

天星授權流程(系統視角)

天星銀證卡擴展字段(BankCardAsbBst)
字段含義運營場景
account_name客戶姓名核對持卡人身份
account_number客戶銀行帳號核對銀行帳號
mandate_id銀證授權 ID核心標識——查詢銀證狀態、排查問題的主鍵
status授權狀態(見下表)判斷 BST 通道是否可用
reject_code授權失敗拒絕碼排查授權失敗原因
created_at授權創建時間確認授權時間線
updated_at最後更新時間確認狀態變更時間

Mandate 狀態碼

狀態碼含義能否出入金運營關注點
0未授權(CLOSE)初始狀態或已取消。用戶需重新發起授權
1授權中(PROCESSING)等待銀行確認,通常秒級~分鐘級完成。若超過 5 分鐘仍在 PROCESSING → 檢查 airstar_service 日誌
2已授權(OPEN)正常狀態,BST 通道可用
3等待中(WAITING)在線開戶專用——等待首筆入金。入金成功後自動 → OPEN(2)
4授權失敗(FAIL)檢查 reject_code 了解失敗原因。常見:銀行側風控攔截、用戶資訊不匹配
5授權取消(CANCEL)用戶或運營主動取消。用戶可重新發起授權

只有 status=2(OPEN)才可出入金——這是運營排查「BST 無法使用」的第一步。

詳細的 Mandate 狀態機 → 內銀系 BST 總覽 § 銀證授權


eDDA 授權與銀行卡

入金視角的 eDDA 授權說明(授權如何開啟代扣入金通道)→ 銀行卡綁定與入金授權 § eDDA

eDDA 授權流程

恒生和匯豐的 eDDA 授權流程類似但有細微差異:

eDDA 卡擴展字段

恒生和匯豐的 eDDA 授權資訊綁定在銀行卡上:

字段含義恒生匯豐運營場景
limit_amount單筆/週期額度上限用戶反饋「代扣失敗」時檢查是否超限
limit_periodicity額度週期Y=年 / H=半年 / Q=季度 / M=月 / P=每筆
expiry_date有效期9999999=長期有效;檢查是否過期
status啟用狀態0=失效 / 2=啟用0=失效 / 1=授權中 / 2=啟用status=2 才可代扣
mandate_identification銀行側唯一標識與匯豐核對時使用

恒生 vs 匯豐 eDDA 差異

維度恒生匯豐
服務名sba_hase_eddisba_hsbc_eddi
授權確認同步返回(秒級)異步 SFTP 報表(T+0~T+1)
狀態值0/2 兩種0/1/2 三種(多一個「授權中」)
報表下載不需要hsbc_edda_report 服務定時拉取
額度修改需重新授權需重新授權

eDDA 只用於入金

eDDA/eDDI 是代扣通道,只能用於入金(從用戶銀行帳戶扣款到證券帳戶)。出金不走 eDDA——恒生/匯豐的出金走企業網銀通道(hase / hsbc),由運營在銀行網銀完成人工轉帳。


銀行卡 API 概覽

銀行卡服務對外暴露的核心接口——對應 CRM 和 App 中的操作:

面向 App 的接口

接口觸發場景效果說明
AddBankCard用戶在 App 添加銀行卡創建 bank_card 記錄,status=1含參數校驗(SWIFT/地址/唯一性)
GetBankCardList用戶查看銀行卡列表返回 status≠2 的所有卡含 methods 列表,供前端顯示可用通道
DeleteBankCard用戶解綁銀行卡status → 2(已刪除)會先檢查無進行中的出入金
CheckSave在線開戶流程添加卡創建 bank_card 記錄,status=0(待審核)operation=1 開戶中 / operation=0 入金中
TakeEffect在線開戶首筆入金成功status 0→1(待審核→已生效)由入金服務自動調用

面向 CRM 的接口

接口運營操作效果使用場景
GetBankCardInfo查看銀行卡詳情返回卡全部字段 + 擴展資訊排查時獲取完整卡資訊
UpdateBankCard修改銀行卡資訊更新指定字段修正錯誤的 SWIFT/地址等
ManualVerify手動通過認證verify → 2運營審核憑證後標記認證
UpdateThirdPartyFlag修改第三方卡標記third_party_flag 更新誤標記時修正
BatchTakeEffect批量生效待審核卡多張卡 status 0→1在線開戶批量處理

銀行卡異常場景

#場景表現可能原因排查步驟運營處理
1BST 無法使用用戶反饋銀證入金/出金不可用Mandate 不是 OPEN 狀態① 查 bank_card_asb_bst.status 是否為 2(OPEN) ② 查 account_type 是否為 2/3/6/7(含 BST 位)不是 OPEN → 引導重新授權
2eDDA 代扣失敗入金時提示代扣失敗eDDA 未啟用或額度超限① 查 eDDA status 是否為 2 ② 查 limit_amount 是否超限 ③ 查 expiry_date 是否過期未啟用 → 重新授權;超限 → 等待額度重置或提高額度
3綁卡後通道未出現用戶綁卡後 App 不顯示 BST/eDDA 選項account_type 未正確設置① 查 account_type 值:BST 需為 2/3/6/7,eDDA 需為 4/5/6/7 ② 查 methods 列表account_type 缺失 → 檢查授權流程是否完成
4在線開戶卡無法使用待審核卡不可出入金首筆入金未完成① 查 status 是否為 0 ② 查首筆入金是否成功 ③ 查 TakeEffect 是否執行入金已成功但卡未生效 → 手動 BatchTakeEffect
5認證失敗影響出金首次出金到未認證卡被攔截卡未認證(verify=0)① 查 verify 字段 ② 查是否有待審核的憑證引導用戶上傳銀行對帳單;或運營 ManualVerify
6第三方卡限制third_party_flag=1 的卡出金受限系統判定為非本人卡① 查 third_party_flag ② 確認是否確實是第三方卡誤標記 → UpdateThirdPartyFlag 修正
7SWIFT 缺失導致出金失敗出金時銀行報錯HK 卡綁卡時未填 SWIFT(歷史數據)① 查 bank_swift 是否為空運營 UpdateBankCard 補充 SWIFT
8幣種不支持用戶選擇的幣種無法入金/出金currency_type 不含對應幣種① 查 currency_type 位圖引導用戶綁定支持該幣種的銀行卡

線上開戶

線上開戶的入金視角(含用戶旅程和異常處理)→ 銀行卡綁定與入金授權 § 天星線上開戶三合一

天星三合一流程

天星銀行支持線上開戶——新客戶可以在 moomoo App 內一站式完成從零到可交易的全流程:

步驟動作說明涉及系統操作數據變更
1開立證券帳戶完成 KYC 身份驗證帳戶系統創建交易帳戶
2Mandate 授權授權天星進行銀證轉帳CreateAuth → 銀行確認BankCardAsbBst.status = 3(WAITING)
bank_card.status = 0(待審核)
3首筆入金完成首筆入金到證券帳戶入金成功 → TakeEffectbank_card.status 0→1(已生效)
BankCardAsbBst.status 3→2(OPEN)

價值:傳統流程需要用戶在多個系統間切換(moomoo 開戶 → 去銀行櫃台或網銀簽約 → 回 moomoo 入金),三合一流程把這三步壓縮到一個連貫的 App 內流程中,大幅降低新客流失率。

線上開戶 vs 常規開通

維度線上開戶(新用戶)常規開通(已有天星帳戶)
前提條件無需天星銀行帳戶必須已有天星銀行帳戶
操作位置全程在 moomoo App 內moomoo App 發起,可能需銀行端確認
流程開戶 → 簽約 → 首次入金,三步合一簽約 → 入金,兩步
銀行卡初始狀態status = 0(待審核)status = 1(已生效)
Mandate 初始狀態status = 3(WAITING)status = 2(OPEN)
最低入金有要求(見下表)無最低限制
獲客價值高——降低新客入門門檻中——僅對已有天星客戶

首筆入金限制

線上開戶的首筆入金有最低金額要求,高於普通入金:

幣種線上開戶最低入金普通入金最低不滿足時表現
HKD10,000無限制App 提示「首次入金需 ≥ 10,000 HKD」
USD1,500無限制App 提示「首次入金需 ≥ 1,500 USD」
CNH10,000無限制App 提示「首次入金需 ≥ 10,000 CNH」

目的是確保新客戶有足夠資金進行交易,避免「只開戶不交易」的無效轉化。

線上開戶用戶旅程

線上開戶異常處理

#異常場景卡在哪一步數據狀態運營處理
1開戶成功但授權失敗Mandate 授權bank_card.status=0, BankCardAsbBst.status=4(FAIL)引導用戶重新發起授權(不需要重新開戶)
2授權成功但入金失敗首筆入金bank_card.status=0, BankCardAsbBst.status=3(WAITING)引導用戶重新發起入金(滿足最低金額)
3入金成功但卡未生效TakeEffectbank_card.status=0(應為 1)手動 BatchTakeEffect 或檢查 TakeEffect 接口
4長時間停在待審核用戶未完成入金bank_card.status=0, BankCardAsbBst.status=3聯繫用戶提醒完成首筆入金

僅天星支持

招行和民生不支持線上開戶三合一流程——銀證簽約需要用戶在銀行端完成。線上開戶是天星 BST 獨有的獲客功能,特別適合配合營銷活動推廣(如「入金送免佣」)。

完整限額 → 出金規則手冊 § 三層限額體系


讀完之後

我想...去看
了解入金視角的綁卡與授權銀行卡綁定與入金授權
了解 BST Mandate 狀態機內銀系 BST 總覽
了解 SBA 編排模型SBA 資金編排
看整體架構和數據流系統架構與數據流
查銀行卡相關錯誤碼統一錯誤碼中心
這個頁面有幫助嗎?

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