人工匹配指引
本頁說明
講什麼:入金流水與申請自動匹配失敗後,運營如何手動完成匹配和入帳 適合誰:負責入金審核的運營人員 前置閱讀:匹配與自動入帳 — 先理解自動匹配的邏輯 預計閱讀:3 分鐘 負責人:入金運營主管
核心要點:人工匹配分為四種場景:輔助匹配(系統推薦但需確認)、完全不匹配(無推薦結果)、超額攔截、無申請流水——每種有不同的操作流程和風險等級。
新人學習路徑
如果你剛入職,建議按此順序閱讀運營手冊:① CRM 操作地圖(熟悉系統介面)→ ② 本頁(核心日常工作)→ ③ 出金審批指引 → ④ eDDA 排障指引 → ⑤ 沖正/退款指引 → ⑥ 定時任務與監控
什麼時候需要人工匹配
匹配引擎每 3 分鐘自動運行一輪。如果滿足以下任一條件,流水不會自動入帳,需要運營介入:
| 場景 | 匹配引擎輸出 | 觸發原因 |
|---|---|---|
| 輔助匹配 | 寫入匹配表,等運營確認 | 金額在輔助容差範圍內但超出自動入帳容差 |
| 完全不匹配 | 跳過 | 五維(金額+幣種+銀行+日期+卡號)比對全部失敗 |
| 金額超限 | 匹配成功但不自動入帳 | 超過自動入帳限額(如 HKD > 200 萬) |
| 無申請的流水 | 異常入金列表 | 用戶轉了錢但沒提交申請 |
CRM 導航路徑
| 功能 | CRM 路徑 | 說明 |
|---|---|---|
| 匹配列表 | 入金管理 → 匹配列表 | 查看輔助匹配待確認記錄 |
| 流水列表 | 入金管理 → 流水列表 | 查看所有銀行流水,可按銀行/狀態/日期篩選 |
| 申請列表 | 入金管理 → 入金申請 | 查看所有入金申請,可按 UID/狀態/幣種篩選 |
| 異常入金 | 入金管理 → 異常入金 | 查看無匹配申請的孤立流水 |
| 入金任務 | 入金管理 → 任務審批 | 確認匹配後生成的入金任務 |
操作流程
Runbook 格式說明
本頁操作按標準 Runbook 格式組織。每個操作場景包含:
- 告警/觸發 — 什麼情況下需要執行此操作
- 判斷 — 如何確認問題性質
- 操作 — 具體執行步驟
- 驗證 — 操作完成後如何確認成功
一、輔助匹配確認
CRM 路徑:入金管理 → 匹配列表 → 篩選「待確認」
- 打開匹配列表,系統已展示匹配引擎推薦的流水-申請配對
- 對每條待確認記錄,核對以下欄位:
| 檢查項 | 流水欄位 | 申請欄位 | 判斷標準 |
|---|---|---|---|
| 金額 | Flow.amount | Apply.amount | 差額在銀行容差範圍內(各銀行標準不同,→ 容差規則) |
| 幣種 | Flow.currency | Apply.currency | 必須完全一致 |
| 姓名 | Flow.en_name / Flow.cn_name | 用戶註冊名 | 允許格式差異(姓名顛倒、空格/逗號差異) |
| 卡號 | Flow.customer_account | Apply.bank_card_number | 尾號一致(跨行轉帳時中轉行可能替換前綴) |
| 日期 | Flow.date | Apply.create_time | 在匹配窗口內(標準 -3~+2 天,中銀 ±15 天) |
- 確認無誤 → 點擊「確認匹配」→ 系統自動創建入金任務並入帳
- 有疑問 → 點擊「忽略」→ 該匹配對不再自動推薦
二、手動匹配(完全不匹配時)
CRM 路徑:入金管理 → 流水列表 + 入金管理 → 入金申請
- 在流水列表(存入資金 → 待處理)找到未匹配的流水,篩選
status = 0 待處理 - 在申請列表(存入資金 → 客戶入金指令)找到可能對應的申請,篩選
status = 0 待處理,同幣種,相近金額 - 按上方欄位對照表逐項比對
- 確認後在流水詳情頁點擊「手動關聯」選擇對應申請
- 系統自動執行入帳
三、異常入金處理(無申請)
CRM 路徑:入金管理 → 異常入金
- 查看異常入金列表(
AbnormalDepositJob每 30 分鐘自動檢測生成) - 系統已透過銀行卡號和姓名嘗試識別用戶,匹配結果展示在列表中
- 處理方式:
- 確認入帳 — 代用戶創建申請並入帳(權限:
ABNORMAL_DEPOSIT_MODIFY) - 掛起 — 等待用戶自行提交申請後自動匹配
- 標記跟進 — 聯繫用戶確認意圖
- 確認入帳 — 代用戶創建申請並入帳(權限:
匹配決策流程
§ 自動匹配 vs 智能提醒
兩套系統並行運行:
| 維度 | 自動匹配 | 智能提醒 |
|---|---|---|
| 功能 | 匹配成功後直接自動入帳 | 僅推薦匹配結果,需人工確認 |
| 運行時間 | 有時間窗口(見下表) | 7×24 全天候 |
| 適用場景 | 非開戶客戶 + 開戶非首次入金 | 所有流水 |
| 無姓名流水 | 不支援 | 支援(使用寬鬆規則) |
| 匹配後動作 | 直接入帳(通過風控審核後) | 推薦給運營,等待人工確認 |
自動匹配運行時間窗口:
| 幣種 | 自動匹配運行時間 |
|---|---|
| HKD / CNH | 週一 07:00 ~ 週六 10:00 |
| USD | 每日 09:00 ~ 16:00 |
窗口外的流水僅走智能提醒(人工推薦確認)。
§ 匹配規則編碼速查
所有銀行通用的規則編碼:
| 編碼 | 含義 | 說明 |
|---|---|---|
| A | 基礎匹配條件 | 幣種一致、帳戶有效等基礎校驗 |
| B1 | 金額完全相等 | 流水金額 = 指令金額,精確匹配 |
| B2 | 海外匯入容差 | 跨境匯款允許中轉行扣費:HKD/CNH ≤ 420,USD ≤ 60 |
| B3 | 在線開戶首次入金門檻 | 線上開戶客戶首筆入金最低金額:HKD/CNH ≥ 10,000,USD ≥ 1,500 |
| B4 | 本地近似相等 | HKD/CNH: 0 ≤ 指令金額 - 流水金額 ≤ 20; USD: ≤ 3 |
| C1 | 姓名匹配(嚴格) | 用於自動入金,要求完整匹配 |
| C2 | 姓名匹配(寬鬆) | 用於智能提醒,支援模糊匹配 |
| D | 通用校驗條件 | 日期窗口、指令狀態等通用條件 |
| E | 帳號校驗 | 僅自動匹配使用,校驗流水帳號與指令銀行卡號的一致性(見下方詳細說明) |
| F1 | 地區:香港 | 匯款銀行所在地區為香港(基於 SWIFT 或銀行提供的地區資訊;無地區資訊視為不滿足) |
| F2 | 地區:曾有授權 | 該帳號曾有過成功的銀證或 eDDA 授權,可推定所屬地區為香港 |
規則 E(帳號校驗)的完整邏輯
規則 E 按以下優先級逐條嘗試,任一命中即視為匹配:
- BankCode + 帳號完全一致 — 指令帳號(含銀行代碼前綴)與流水帳號完全相同
- 多 BankCode 匹配 — 若同一銀行有多個代碼,逐個嘗試,優先使用系統配置的第一個
- 僅帳號(不含 BankCode)一致 — 去除銀行代碼前綴後帳號相同
- 工銀特殊規則 — 去掉工銀帳號尾號後,按規則 1/2 匹配
- 中銀 14 位校驗 — BankCode + 帳號必須為 14 位,非 14 位視為不匹配(排除中銀智能帳戶)
- 信用卡排除 — 帳號長度 > 15 位且不以
621299開頭 → 視為信用卡,不匹配(621299開頭為招行 16 位帳號,不誤判)
規則 F1/F2 的使用場景
F1 和 F2 僅在線上開戶客戶 + 未生效銀行卡入金場景下使用,與 B3 配合判斷入金來源是否為香港銀行帳戶。典型的完整規則組合:A & B1 & C1 & D & E & B3 & (F1 | F2)。
§ 中銀流水類型路由表
中銀流水根據轉帳類型和是否有付款人姓名進入不同匹配路徑:
有姓名的流水(支援自動入金):
| 轉帳類型 | 摘要前綴 | 自動匹配規則 |
|---|---|---|
| Transfer | FPS* | A & B1 & C1 & D & E |
| Transfer | E-BANKING TRANSFER* | A & B1 & C1 & D & E |
| Transfer | CHATS* | A & B4 & C1 & D & E |
| Transfer | REMIT IN* | A & B2 & C1 & D & E |
| Transfer | 其他 | A & B4 & C1 & D & E |
| Transfer Transaction | CBS TRANSFER* / 其他 | A & B4 & C1 & D & E |
無姓名的流水(不支援自動入金,僅智能提醒):
| 轉帳類型 | 智能提醒規則 |
|---|---|
| Transfer (CBS TRANSFER*) | A & B4 & D |
| Interest | A & B4 & D |
| Clearing Cheque / Cheque Clearing | A & B4 & D |
| Returned Cheque | A & B4 & D |
| ATM Transfer | A & B4 & D |
| 其他 | A & B4 & D |
注意
- 轉帳類型和摘要均不區分大小寫
- 線上開戶客戶若銀行卡尚未審批通過,以上所有自動匹配規則需額外增加 B3(在線開戶首次入金門檻) 和 F1 | F2(地區校驗)
§ 自動審批風控規則
自動匹配成功後,以下風控規則可能將入金升級為人工審核:
| 風控規則 | 觸發條件 | 處理方式 |
|---|---|---|
| 多牛牛號衝突 | 一條流水匹配到多個不同牛牛號的指令 | 不自動審批,等待人工處理 |
| 限頻 | 同一牛牛號當天有多條不同金額指令,前 10 筆自動審批,第 11 筆起 | 轉人工審批 |
| 限額 | 單筆超過限額 | 自動匹配後轉人工審核 |
自動審批限額:
| 幣種 | 自動審批限額 |
|---|---|
| HKD | 200 萬 |
| USD | 30 萬 |
| CNH | 200 萬 |
§ 開戶入金特殊規則
香港線上開戶客戶有額外限制:
| 規則 | 說明 |
|---|---|
| 首次入金最低金額 | HKD 10,000 / CNH 10,000 / USD 1,500 |
| 額外匹配校驗 | 未生效銀行卡入金在標準規則上額外增加 B3(銀行卡驗證) |
| 開戶可用 eDDA | 僅 HSBC eDDA 可用於開戶入金(App 內即時完成授權) |
| 開戶不可用 eDDA | 恒生 eDDA 不可用於開戶入金(需在銀行 App 授權,非即時) |
| 首次入金後 | 客戶只能使用首次入金的同一張銀行卡進行後續出入金 |
§ 入金指令管理
入金指令的 5 種創建方式:
| 創建方式 | 觸發場景 | 說明 |
|---|---|---|
| 轉帳按鈕 | 客戶在入金頁點擊「我已轉帳」 | 最常見,客戶手動提交 |
| eDDA 自動 | 客戶發起 eDDA 扣款 | 系統自動創建指令 |
| BST 應用端 | 客戶在 moomoo App 發起銀證入金 | 系統自動創建指令 |
| BST 銀行端 | 銀行端發起入金,資金流水到達後 | 系統在流水到達後才創建指令 |
| CRM 手動 | 業務人員在 CRM 直接創建 | 用於特殊補錄場景 |
特殊指令操作:
| 操作 | 說明 | 風險等級 |
|---|---|---|
| 緊急入金 | 強制將指令與流水匹配,甚至無流水直接入帳 | ⚠️ 極高——等同於直接給客戶加錢 |
| 指令鎖定 | 鎖定異常/不合規指令,阻止自動匹配和其他人員處理 | 低 |
| 指令駁回 | 缺少入金憑證或非同名入金,退回客戶重新提交 | 低 |
| 指令自動駁回 | 不同銀行和入金方式按指令年齡/時間自動駁回 | 無(系統自動) |
§ 灰度發佈對匹配的影響
新匹配規則上線時按灰度策略逐步放量:
| 階段 | 時間範圍 | 灰度比例 |
|---|---|---|
| 第一階段 | 發佈當天 ~ 次日 12:00 | 每小時前 2 筆流水走新規則 |
| 第二階段 | 次日 12:00 ~ 16:10 | 每小時前 10 筆流水走新規則 |
| 第三階段 | 次日 16:10 後 | 全量走新規則 |
運營影響
灰度期間部分流水會繞過自動匹配,需關注人工匹配量是否異常上升。
升級路徑
升級鏈路:運營人員 → 入金產品經理 → 後端開發 → 銀行對接人
| 場景 | 一線處理 | 升級條件 | 升級對象 |
|---|---|---|---|
| 金額差異 > 輔助容差 | 聯繫用戶確認差額來源 | 用戶無法解釋 | → 入金產品經理 |
| 姓名完全不同 | 聯繫用戶確認 | 可能是代付 / 他人轉帳 | → 合規團隊 |
| 同一流水匹配多個用戶 | 逐個確認 | 無法確定歸屬 | → 入金產品經理 + 風控 |
| 流水堆積超 50 條 | 檢查採集服務 | 採集服務異常 | → 後端開發 / 技術運維 |
| 連續 3 輪匹配率下降 | 檢查容差配置是否變更 | 系統配置問題 | → 入金產品經理 |
| 銀行介面異常 | 確認銀行側公告 | 銀行側問題需協調 | → 銀行對接人 |
判斷清單
拿到一條未匹配流水時,按順序檢查:
1. 金額:Flow.amount 與 Apply.amount 差異是否在容差範圍內?
→ 容差標準見:入金規則速查 § 匹配容差規則
2. 幣種:Flow.currency 和 Apply.currency 是否一致?
→ 不一致通常需要駁回申請
3. 姓名:Flow.en_name 是否與用戶註冊英文名匹配?
→ 注意格式差異("CHAN TAI MAN" vs "Tai Man Chan")
4. 卡號:Flow.customer_account 尾號是否與 Apply.bank_card_number 一致?
→ 跨行轉帳時中轉行可能替換卡號
5. 日期:Flow.date 是否在 Apply 創建日期的匹配窗口內?
→ 標準窗口:-3 天 ~ +2 天(中銀 B2E 使用獨立的 ±15 天窗口)
6. 中銀卡號:銀行報表解析後的帳號首位如果是 `/`,系統會自動去除後入庫
→ 核對時注意原始帳號可能帶 `/` 前綴常見駁回理由
| 情況 | 推薦駁回碼 | 操作 |
|---|---|---|
| 憑證看不清 | 1(資訊不清楚) | 要求補充憑證 |
| 銀行帳戶資訊缺失 | 4 | 要求補充銀行資訊 |
| 證券帳戶異常 | 5 | 升級至帳戶團隊 |
| 多筆重複申請 | 8(重複申請) | 保留一筆,駁回其餘 |
| 逾時未收到資金 | 9(逾時) | 系統通常自動駁回 |
| 轉帳人與申請人不一致 | 14(帳戶不一致) | 聯繫用戶確認 |
完整駁回原因碼 → 入金規則速查 § 駁回原因碼
所需權限
| 權限 | 用途 |
|---|---|
CASH_IN_APPLY_VIEW | 查看入金申請 |
CASH_IN_FLOW_VIEW | 查看銀行流水 |
CASH_IN_TASK_APPROVAL | 確認匹配、通過/駁回入金 |
ABNORMAL_DEPOSIT_MODIFY | 處理異常入金(無申請的流水) |
CASH_IN_APPLY_MODIFY | 修改申請資訊後重新匹配 |
處理時效 SLA
| 場景 | 目標回應時間 | 說明 |
|---|---|---|
| 輔助匹配確認 | 1 小時 | 工作時間內收到匹配通知後 |
| 異常入金處理 | 2 小時 | 工作時間內異常入金產生後 |
| 手動匹配 | 4 小時 | 用戶反饋「錢沒到」後 |
| 流水堆積告警 | 15 分鐘 | 任何時間,7×24 |
如果需求變更:調整人工匹配的流程或規則
程式碼位置:
- 匹配列表 API:
deposit/src/app/Http/Controllers/MatchController.php - 手動匹配操作:
deposit/src/app/Business/Match/ManualMatch.php(如存在) - 異常入金檢測:
deposit/src/app/Jobs/AbnormalDepositJob.php
常見變更場景:
- 修改輔助匹配展示的欄位 → 調整匹配列表 API 的返回欄位
- 修改異常入金檢測邏輯 → 調整
AbnormalDepositJob中的檢測條件 - 新增批量確認功能 → 在 MatchController 中添加批量操作介面
- 修改駁回原因碼選項 → 調整
deposit/src/app/Common/RejectReason.php中的列舉
各銀行匹配特性速查
詳細匹配規則見 銀行能力矩陣 § 入金匹配規則,這裡補充運營日常匹配時需要特別注意的銀行差異。
| 銀行 | 金額容差 (HKD) | 日期窗口 | 姓名規則 | 運營特別注意 |
|---|---|---|---|---|
| 中銀 | 本地 -20, 跨境 -420 | ±15 天 | 不校驗 | particulars 可能無法識別入金方式,需手動選擇 |
| 匯豐 | 常規 -420, 自動 -65 | -3~+2 天 | 不校驗 | 銀行帳號需去前綴匹配;自動入帳容差更嚴格 |
| 恒生 | -20 | -3~+2 天 | 不校驗 | 按流水類型分別匹配,注意區分不同類型 |
| EWB | -420 | -3~+2 天 | 不校驗 | "Other Deposit" 類型只看金額,不看其他維度 |
| 建銀 | -20 | -3~+4 天 | 精確匹配 | 英文姓名必須一致,注意姓名順序和拼寫 |
| 星展 | -350(自動) | -3~+2 天 | 不校驗 | 子帳戶需歷史校驗,新子帳戶首筆需人工確認 |
| BST | 精確 | 即時 | — | 直連通道,無需流水匹配 |
| 工銀 | — | — | — | 銀企直聯流水採集,匹配規則標準 |
| 交行/BANKCOMM | -300 HKD / -45 USD / -300 CNH | -7~+4 天 | 不校驗 | 子帳戶匹配優先,容差較大 |
最容易出問題的三家
- 中銀——particulars 識別失敗是最常見的匹配失敗原因(運營需手動選入金方式)
- 建銀——姓名精確匹配導致拒絕率較高(注意姓名順序)
- 星展——新子帳戶首筆入金不會自動入帳(需人工確認)
讀完之後
| 我想... | 去看 |
|---|---|
| 了解自動匹配的五維邏輯 | 匹配與自動入帳 |
| 查容差數值、逾時配置、駁回碼 | 入金規則速查 |
| 排查更多入金異常場景 | 入金排障 |
| 查錯誤碼和狀態碼 | 統一錯誤碼中心 |