Skip to content

入金規則速查

本頁說明

講什麼:入金相關的所有參考數據——狀態碼、限額、容差、時效、字段含義。本頁是唯一信源,其他頁面引用而非重複 適合誰:需要查詢具體數字/代碼的產品經理和運營人員 前置閱讀:無,隨時查閱 預計閱讀:查閱型,按需搜索 負責人:入金產品經理


快速跳轉 — 你可能想做的事:

入金狀態碼

申請狀態(Apply Status)

狀態碼含義說明
0待處理用戶已提交,等待銀行流水到達和匹配
1處理中已匹配/已確認扣款,正在執行 SBA 入賬
2已完成入金成功,資金已到證券帳戶
3已駁回超時駁回或運營駁回
4已撤回用戶主動取消
5已沖正已入賬資金被撤回

流水狀態(Flow Status)

狀態碼含義說明
0待處理銀行流水剛到達,等待匹配
1已處理已匹配並完成入金
2錯誤處理失敗,需人工干預
3已鎖定運營鎖定調查中
4在途資金在途未確認
9已刪除標記為無效

匹配結果碼

結果碼含義後續
0不匹配跳過,等下一輪
1輔助匹配寫入匹配表,等運營確認
2完全匹配進入自動入賬判定

幣種與自動入賬限額

幣種代碼單筆自動入賬上限每日自動筆數上限
HKD(港幣)12,000,00010 筆/用戶
USD(美元)2300,00010 筆/用戶
CNH(離岸人民幣)32,000,00010 筆/用戶
JPY(日元)440,000,00010 筆/用戶
SGD(新加坡元)5350,00010 筆/用戶

邊界說明:限額為單筆判斷(非累計),使用閉區間(≤),即金額恰好等於限額時仍可自動入賬。超過限額不會失敗,只是不能自動入賬,需運營人工確認。每日 10 筆限制按自然日(00:00~24:00 HKT)計算,不區分交易日。

為什麼是這些限額?

幣種限額設計依據
HKD 200 萬覆蓋 99%+ 的正常入金。超過 200 萬的入金極少見,且金額越大誤匹配的風險和影響越大
USD 30 萬約等於 HKD 200 萬(按 ~6.5 匯率),保持各幣種限額等價
CNH 200 萬與 HKD 等額設置
JPY 4000 萬約等於 HKD 200 萬(按 ~0.05 匯率)
SGD 35 萬約等於 HKD 200 萬(按 ~5.7 匯率)
每日 10 筆正常用戶極少一天入金超過 3 次。10 筆留了充足餘量,同時防止異常批量入金
如果需求變更:修改自動入賬限額

代碼位置deposit/src/app/Business/Match/MatchBase.php(約第 38-44 行)

MAX_AUTO_DEPOSIT_AMOUNT_HKD = 2000000
MAX_AUTO_DEPOSIT_AMOUNT_USD = 300000
MAX_AUTO_DEPOSIT_AMOUNT_CNH = 2000000
MAX_AUTO_DEPOSIT_AMOUNT_JPY = 40000000
MAX_AUTO_DEPOSIT_AMOUNT_SGD = 350000
MAX_AUTO_DEPOSIT_COUNT = 10  // 每日每用戶上限筆數

常見變更場景

  • 調高/調低某幣種限額 → 修改對應常量值。注意:這會影響所有銀行的自動入賬判定
  • 調整每日筆數上限 → 修改 MAX_AUTO_DEPOSIT_COUNT
  • 某銀行使用不同限額 → 需在該銀行的 Match 類中覆寫限額檢查邏輯(當前所有銀行共用同一限額)

匹配容差規則

標準容差

公式:Apply.amount - 容差 ≤ Flow.amount ≤ Apply.amount(流水金額可比申請少最多「容差」元,閉區間)

場景幣種容差
本地轉賬HKD / CNH / JPY0 ~ 20
本地轉賬USD / SGD0 ~ 3
跨區/跨行HKD / CNH / JPY0 ~ 420
跨區/跨行USD / SGD0 ~ 60

邊界說明:差額恰好等於容差值時仍算匹配。例如 HKD 本地容差 20:申請 50,000、流水 49,980 → 匹配成功。跨區容差更大是因為中轉行手續費不可控。

各銀行特殊容差

不同銀行有各自的容差標準。「自動入賬容差」用於全自動入賬判定,「輔助匹配容差」用於生成候選匹配對供人工確認——後者更寬鬆。

銀行幣種自動入賬容差輔助匹配容差
中銀(BOCHK)HKD0~200~20
中銀(BOCHK)USD0~30~3
匯豐(HSBC)HKD0~650~420
匯豐(HSBC)USD0~140~60
工銀亞洲HKD0~200~20
工銀亞洲USD0~550~55
星展(DBS)HKD0~3500~350
星展(DBS)USD0~500~50
EWBHKD0~420
EWBUSD0~60
EWB 子帳戶全幣種0~400~100
眾安子帳戶HKD0~3500~350
眾安子帳戶USD0~500~50
新加坡工銀HKD0~5000~500
新加坡工銀USD0~700~70

匹配時間窗口

流水類型匹配窗口適用銀行/場景
標準流水流水日期 -3天 ~ +2天大部分銀行常規流水
中銀流水流水日期 -3天 ~ +4天中銀 B2E(流水延遲較大)
即時流水流水到達時間 ~ +2天MT910、銀證等即時推送
即時 FPS流水到達時間 -1小時 ~ +2天FPS(允許流水略早於申請)
非即時流水流水日期 -3天 ~ +2天批量導入的歷史流水

邊界說明:時間窗口中的「天」按自然日計算(非交易日)。「-3天」指 申請日期 - 3 × 24小時,精確到秒。「流水日期」對於即時流水使用到達時間戳(精確到秒),對於批量流水使用交易日期(精確到天,以 00:00:00 為準)。

為什麼不同流水類型用不同窗口?

窗口設計依據
標準 -3/+2 天用戶可能先申請後轉賬(最多提前 3 天申請),或先轉賬後申請(最多延後 2 天申請)。覆蓋絕大部分正常操作時序
中銀 +4 天B2E 每日僅 3 次拉取 + 2 小時格式轉換,流水可能比交易晚 1~2 天進入系統,因此額外放寬 2 天
FPS -1 小時FPS 秒級到賬,但用戶可能先轉賬再申請(銀行流水比申請早幾秒到幾十秒)。-1 小時覆蓋這種「先轉後申」場景
即時 +2 天即時流水精確到秒,用更精準的時間比較而非天級比較,降低同金額同用戶多筆入金的誤匹配風險

超時與自動駁回配置

申請超時後系統自動處理,分兩階段:先通知(提醒上傳憑證),再駁回。天數按 HKEX 交易日計算。

銀行入金方式通知天數駁回天數(通知後)
工銀/恒生/中銀FPS11
工銀/恒生/中銀網銀同行11
工銀/恒生/中銀網銀跨行(HKD)21
工銀/恒生/中銀網銀跨行(USD/CNH)41
工銀/恒生/中銀ATM21
工銀/恒生/中銀支票21
匯豐網銀同行11
匯豐網銀跨行41
EWB所有方式41
眾安子帳戶所有方式不通知10

補充憑證超時:需補充憑證超 20 個交易日未提供 → 自動駁回。憑證已提供但超 10 個交易日無流水 → 自動駁回。

邊界說明:超時天數表中的「天」按 HKEX 交易日計算(排除週末和香港公眾假期)。補充憑證超時按交易日計算。兩種口徑不同——入金超時用交易日是因為銀行只在交易日處理轉賬。

如果需求變更:調整超時駁回天數

代碼位置deposit/src/app/Business/AutoNoticeReject.php(約第 371-424 行)

超時通知和駁回天數通過 getConfig() 方法按銀行和入金方式配置,返回結構為:

[
    'notice_day' => 通知天數,    // 申請創建後多少交易日發通知
    'reject_day' => 駁回天數,    // 通知發出後多少交易日自動駁回
]

常見變更場景

  • 調整某銀行某方式的通知天數 → 在 getConfig() 的對應分支中修改 notice_day
  • 調整補充憑證超時 → 搜索 supplement 相關常量(當前:未提供=20 天,已提供無流水=10 天)
  • 新增銀行的超時配置 → 在 getConfig() 中添加新的條件分支
  • 關閉某銀行的自動通知(如眾安子帳戶模式) → 將 notice_day 設為 null 或特殊標記

注意

  • 天數按 HKEX 交易日計算(排除週末和公眾假期),交易日曆維護在 deposit/config/ 目錄
  • 修改通知天數會影響用戶收到的推送消息時機
  • 駁回後系統會自動發送駁回通知給用戶(駁回原因碼=9 超時)

自動處理時段

方式營業時段暫停期
BST 銀證週一 08:00 ~ 週五 16:00
eDDA(匯豐/恒生)週一 07:00 ~ 週六 10:00
天星銀證工作日營業時間
FPS與 BST 類似
匹配引擎7×24(每 3 分鐘)自動入賬受上述時段限制

每日 16:00~16:10 為帳戶對賬暫停期,所有自動入金處理暫停。

自動入賬處理時段(按幣種)

不同幣種的自動入賬開始時間不同——USD 晚於其他幣種 2 小時開始,避免美元清算時段干擾:

幣種開始時間結束時間週六說明
HKD07:00次日 04:00到 09:55 關閉覆蓋港股交易日全時段
USD09:01次日 04:00到 09:55 關閉晚於 HKD,避免美元清算干擾
CNH07:00次日 04:00到 09:55 關閉同 HKD
JPY07:00次日 04:00到 09:55 關閉同 HKD
SGD07:00次日 04:00到 09:55 關閉同 HKD

非處理時段內的流水仍會被匹配引擎匹配,但不會觸發自動入賬——降級為輔助匹配等運營確認。

配置位置:deposit/src/app/Business/DepositConfigNew.php(USD 特殊開始時間約第 440 行,週六關閉約第 498 行)

2412 暫停窗口(適用所有自動入賬):

暫停時段原因影響範圍
08:55 ~ 09:00開盤前對賬所有自動入賬暫停
16:05 ~ 16:10收盤後對賬所有自動入賬暫停

配置位置:deposit/src/app/Business/DepositConfigNew.php:603-641

eDDA 銀行維護窗口:

銀行維護時段影響
恒生週日 00:00 ~ 08:30不接受 eDDI 請求
匯豐週日 00:00 ~ 12:00不接受 eDDI 請求

維護時段內提交的 eDDI 指令進入 Blank 狀態,下個工作時段自動激活。詳見 eDDA 代扣入金 § 處理時段


處理時效參考

方式最快典型最慢
eDDA數分鐘~5 分鐘數小時(銀行側延遲)
BST 銀證~10 分鐘~10 分鐘下一交易日(非營業時段)
天星銀證~10 分鐘~10 分鐘下一交易日
FPS 轉數快3 分鐘3~5 分鐘下一匹配週期
網銀同行2 小時2 小時當日
網銀跨行2 天2~3 天4 天(外幣)
ATM/櫃台2 小時2 小時次交易日 11:00
繳付賬單2 小時2 小時次交易日
支票2 天2~3 天3 天
海外匯款3 天5 天5+ 天

各銀行流水到達時效

各銀行流水的採集方式、協議、到達時效和採集服務的完整對比 → 銀行流水採集 § 匯總對比表


駁回原因碼

代碼含義典型場景
1資訊不清楚憑證/資訊無法辨認
2網銀資訊缺失網銀轉賬缺少必要資訊
3ATM 資訊缺失ATM 憑證缺少必要資訊
4銀行帳戶資訊缺失缺少銀行帳戶資訊
5證券帳戶異常用戶帳戶狀態有問題
6交易被取消銀行側取消了交易
7申請被合併多筆申請合併處理
8重複申請系統檢測到重複入金
9超時長時間未收到資金
10其他(港區)香港地區其他原因
11其他(大陸)大陸地區其他原因
12其他(海外)海外地區其他原因
14帳戶不一致轉賬人與申請人不一致
15轉賬資訊不足轉賬憑證資訊不完整

入金方式代碼

代碼Key中文名模式
1bst銀證轉賬Direct
2atmATM/櫃台Push
3fpsFPS 轉數快Push
4bp繳付賬單Push
5ebank網銀轉賬Push
6check支票Push
7subAccount海外匯款Push
8eddaeDDA 恒生Pull
9eddaHSBCeDDA 匯豐Pull
10bstAsb天星銀證Direct

入金類型(Deposit Type)

代碼類型說明
1NORMAL標準流程——流水匹配後自動入賬
2PRE_APPROVAL預審批——用於線上開戶場景
3ABNORMAL異常模式——運營在流水系統中手工創建
4TRANS_AUTO自動審批——前端精確匹配後自動審批
5HIGH_RISK高風險——命中風控規則,需人工審核
11NORMAL_HOLD凍結模式——先凍結再入賬
21STOCK_HOLD股票定投凍結模式——eDDI 入金後凍結,預留給股票定投扣款
31FUND_PURCHASE_HOLD基金申購凍結模式——eDDI 入金後凍結,預留給基金申購

HOLD 類型說明:代碼 11/21/31 統稱為 HOLD 類型(HOLD_LIST = [11, 21, 31])。這些類型的入金到賬後資金被系統凍結,預留給對應的投資操作。凍結釋放時機由投資側系統控制,非入金系統管轄。

配置位置deposit/src/app/Common/EddiDepositType.php


通知類型

代碼類型觸發場景
1普通入金通知入金完成
2線上開戶綁卡通知線上開戶首次入金綁卡成功
3綁卡後入金通知線上開戶綁卡後的入金完成
4大陸預開戶通知大陸預開戶入金到賬

核心字段說明

申請關鍵字段(Apply)

字段業務含義
uid用戶 ID(牛牛號),決定申請存入哪張分表
amount用戶申請入金金額
real_amount實際到賬金額,可能因手續費低於申請金額
currency幣種:HKD / USD / CNH
deposit_method入金方式代碼(見上表)
status申請狀態(0~5,見上表)
export_bank_id付款銀行 ID(用戶側)
import_bank_id收款銀行 ID(公司側)
bank_card_number用戶銀行帳號,匹配引擎用來做卡號比對
area付款銀行地區:HK / CN / OS
notice_type通知類型(1~4,見上表)
deal_type處理方式:bst(銀證)/ eddi(eDDA/eDDI 代扣)/ auto(腳本自動)/ manual(人工)
supplement_status憑證補充狀態:0=不需要 / 1=待補充 / 2=已補充
reject_reason駁回原因(見駁回原因碼表)
expected_time預計完成時間
founder創建者 ID,0=用戶自行發起,>0=運營代創建

流水關鍵字段(Flow)

字段業務含義
trans_type銀行/交易類型代碼,決定流水存入哪張分表
amount實際入賬金額
currency幣種
en_name匯款人英文名,匹配引擎用來做姓名比對
cn_name匯款人中文名
customer_account匯款人銀行帳號,匹配引擎用來做卡號比對
date到賬日期(YYYYMMDD),匹配引擎用來做日期比對
type轉賬類型(櫃台/網銀/FPS 等)
status流水處理狀態(0~9,見上表)
uid匹配到的用戶 ID,初始為 0
apply_id匹配到的申請 ID,初始為 0
abnormal異常標識:0=正常 / 1=異常流水

匹配關鍵字段(Match)

字段業務含義
flow_id關聯的流水 ID
apply_id關聯的申請 ID
uid用戶 ID
status匹配狀態:0=待確認 / 1=已確認 / 2=已忽略

匹配表是臨時表——匹配確認或入賬完成後,記錄會被清理以保持表大小。


資料庫分片策略

入金系統涉及的核心表按以下規則分片:

分片規則分片鍵示例
applysuid % 100用戶 IDapplys_42 = uid 尾數為 42 的用戶
flows{trans_type}_{YYYYMM}銀行類型 + 月份flows_218_202604 = 2026年4月匯豐流水
tasks(id / 1000) % 100任務 IDtasks_05
setup_eddis不分片全量儲存
hsbc_eddis / hs_eddis不分片全量儲存
matches不分片(臨時表)匹配完成後定期清理
配置位置
  • Apply 分表邏輯:deposit/src/app/Business/Apply.phptable() 方法
  • Flow 分表邏輯:deposit/src/app/Business/Flow.php:80CREATE_WHEN_TABLE_NOT_FOUND 配置

定時任務速查

所有入金相關的 Cron 任務匯總:

匹配相關

任務名頻率銀行關聯頁面
match:ccbasia每 3 分鐘建銀亞洲匹配引擎
match:ewb每 3 分鐘EWB匹配引擎
match:boc每 3 分鐘中銀匹配引擎
match:hangseng每 3 分鐘恒生匹配引擎
match:hsbc每 3 分鐘匯豐匹配引擎
match:main icbc-new每 3 分鐘工銀匹配引擎
match:main za-sub-account每 3 分鐘眾安匹配引擎

監控相關

任務名頻率職責關聯頁面
monitor:flow-monitor每 30 分鐘流水堆積告警入金排障
abnormal-deposit:search每 30 分鐘孤立流水掃描入金排障
abnormal-deposit:update-status每 3 分鐘異常入金狀態更新入金排障

對賬相關

任務名頻率職責關聯頁面
bank_reconciliation:generate16:15 每日當日對賬報告
bank_reconciliation:generate --date=yesterday USD09:05 每日昨日 USD 對賬
crmbos_reconciliation:generate每小時CRM-BOS 系統間對賬
配置位置

所有 Cron 定義:deposit/doc/crontab.sh


銀行通道類型代碼(TransType)

代碼銀行類型
101民生銀證銀證
102招行銀證銀證
201恒生銀行直連
202工銀亞洲直連
204民生銀行直連
205招商銀行直連
203交通銀行 BANKCOMM直連
206建銀亞洲直連
207VELO 銀行直連
208星展銀行直連
209ANZ 銀行直連
217EWB 子帳號直連
218匯豐 MT910直連
219渣打子帳號直連
220新加坡工銀子帳戶 SGICBC_SUBACC直連
221眾安銀行直連
301中銀銀企 B2E直連
302恒生 eDDA/eDDI(入金代扣)eDDA
303匯豐 eDDA/eDDI(入金代扣)eDDA
304天星銀證銀證
401DWOLLA美股 Dwolla 入金
501US_IPO美股打新資金回流
502INC_FT_TRANSINC 富途資金互轉

注意:eDDA(授權)和 eDDI(扣款指令)都是入金協議,不涉及出金。恒生/匯豐的出金通道是企業網銀轉賬。


退款與沖正參考數據

沖正相關狀態碼

數據對象字段沖正相關值含義
Apply(申請)status5已沖正——已入賬資金被撤回
Task(任務)statusREVERSE任務已沖正
Flow(流水)result3(RESULT_REFUND)流水標記為退款(不影響證券帳戶)

沖正 API 端點

API方法用途權限
/deposit/reversePOST單筆入金任務沖正CASH_IN_TASK_REVERSE
/deposit/batch (action=reverse)POST批量入金任務沖正CASH_IN_TASK_REVERSE
/flow/refundPOST單筆流水退款標記CASH_IN_FLOW_HANDLE
/flow/refund-batchPOST批量流水退款標記CASH_IN_FLOW_HANDLE
/flow/unlock (is_refund=1)POST解鎖流水並標記退款CASH_IN_FLOW_HANDLE

沖正前置條件速查

操作前置狀態權限其他要求
任務沖正Apply.status = 2(已完成)CASH_IN_TASK_REVERSE證券帳戶餘額 ≥ 沖正金額
流水退款Flow.status = 0(待處理)CASH_IN_FLOW_HANDLE
解鎖退款Flow.status = 3(已鎖定)CASH_IN_FLOW_HANDLE
沖正相關代碼位置
  • 任務沖正入口:deposit/src/app/Business/Deposit.php:877-935reverse()
  • SBA 反向編排:deposit/src/app/Business/SOA/SBA/Deposit.php:309turnAround('CashDepositReverse')
  • 沖正中間件:deposit/src/app/Business/Tasks/Deposit.php:276-287reverseMiddleware()
  • 流水退款:deposit/src/app/Business/BankFlow.php:674-724refund()
  • 解鎖退款:deposit/src/app/Business/BankFlow.php:1639-1695unlock()
  • Apply 狀態常量:deposit/src/app/Business/Apply.phpSTATUS_REVERSE = 5
  • Task 狀態常量:deposit/src/app/Classes/Task/Status.phpREVERSE = 5
  • Flow 結果常量:deposit/src/app/Business/BankFlow.phpRESULT_REFUND = 3

完整的退款機制說明 → 退款與沖正 運營操作步驟 → 沖正/退款指引


讀完之後

我想...去看
了解某條規則的業務含義匹配與自動入賬
看 eDDA 授權/扣款錯誤碼eDDA 代扣入金
按症狀排查入金問題入金排障
推動入金參數變更入金變更指南
查更多術語和縮寫術語表
了解退款和沖正機制退款與沖正
這個頁面有幫助嗎?

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