Skip to content

沖正/退款指引

本頁說明

講什麼:入金沖正和出金沖正的操作流程、前置條件、風險提示 適合誰:有沖正權限的運營人員 前置閱讀入金排障出金排障預計閱讀:3 分鐘 負責人:出金運營主管

核心要點:沖正是將已入帳/已匯出的資金追回的反向操作,風險高且不可撤銷——操作前必須確認銀行側狀態,防止資金狀態不一致。


沖正 vs 退款

術語方向含義
入金沖正證券帳戶 → 用戶銀行已入帳的資金被撤回(如銀行 chargeback、錯誤入帳)
出金沖正用戶銀行 → 證券帳戶已匯出的資金被追回(如銀行退回、錯誤出金)
BST 退款 (REFUNDED)入金成功後銀行退回天星 BST 獨有——銀行事後發起退款

三者的共同點:都涉及已完成交易的反向資金操作,影響重大、不可二次撤銷。


入金沖正

Runbook:入金沖正

觸發:收到銀行 chargeback / 發現錯誤入帳 / 風控事後攔截 判斷:確認申請狀態=已完成(2),帳戶餘額充足 操作:按下方步驟執行沖正 驗證:按「沖正後驗證步驟」逐項確認

前置條件

  • 入金申請狀態必須為 2(已完成)
  • 需要權限:CASH_IN_TASK_REVERSE
  • 正在處理中(狀態 1)的申請不允許沖正

操作步驟

  1. 在 OA 找到目標入金申請
    • CRM 路徑:存入資金 → 已處理 → 找到對應入金任務 → 點擊「沖正」
  2. 確認沖正原因:
    • 銀行退款 (chargeback) — 銀行方面要求退回資金
    • 錯誤入帳 — 匹配錯誤,入帳到了錯誤用戶
    • 風控攔截 — 入帳後風控發現異常
  3. 點擊「沖正」發起操作
  4. 系統執行:
    • 更新申請狀態為 5(已沖正)
    • SBA 執行反向 Procedure(從證券帳戶扣回資金)
    • 如果是通過綁卡入金的,同步解綁銀行卡
    • 發送通知告知用戶

沖正前核查清單

執行沖正前,逐項確認以下事項:

#檢查項CRM 欄位 / 查看方式通過條件
1申請狀態Apply.status= 2(已完成),非處理中
2帳戶可用餘額證券帳戶查詢≥ 沖正金額(用戶可能已用於交易)
3有無在途出金出金任務列表篩選同 UID無處理中的出金任務(避免餘額衝突)
4有無持倉佔用持倉查詢確認沖正後餘額仍足夠覆蓋持倉保證金
5沖正原因確認運營判斷明確且可追溯的沖正理由(chargeback/錯誤入帳/風控)
6大額確認Apply.amount超過 HKD 50 萬建議先凍結帳戶再操作

沖正後驗證步驟

沖正操作執行後,確認以下狀態已正確更新:

#驗證項預期結果
1申請狀態Apply.status = 5(已沖正)
2SBA Procedure反向 Procedure 執行成功(查 SBA 日誌)
3證券帳戶餘額已扣減沖正金額
4銀行卡綁定如果是綁卡入金,銀行卡已解綁
5用戶通知沖正通知已發送(App 推送 + 訊息中心)

風險提示

沖正前必須確認

  • 用戶證券帳戶是否有足夠餘額(如果用戶已經用入金資金交易/出金,餘額可能不足)
  • 沖正操作不可撤銷——執行後無法再恢復
  • 如果涉及大額資金,建議先凍結帳戶再操作

出金沖正

Runbook:出金沖正

觸發:銀行退回資金 / 發現錯誤出金 / 風控事後攔截 判斷:確認任務狀態=已完成(4),資金已實際匯出 操作:按下方步驟執行沖正 驗證:確認任務狀態=已沖正(5),SBA 反向操作成功

前置條件

  • 出金任務狀態必須為 4(已完成)
  • 資金已實際匯出到銀行

操作步驟

  1. 在 OA 找到目標出金任務
  2. 確認沖正原因:
    • 銀行退回 — 銀行側退回了已匯出的資金
    • 錯誤出金 — 出金資訊有誤(如出錯了用戶)
    • 風控事後攔截 — 出金完成後風控發現異常
  3. 發起沖正(動作:REVERSE)
  4. 系統執行:
    • 更新任務狀態為 5(REVERSE)
    • SBA 執行反向資金操作
    • 通知用戶出金已撤回

銀行退回場景

銀行退回資金是出金沖正最常見的觸發原因。可能的情況:

  • 收款帳戶資訊錯誤(帳號/戶名不匹配)
  • 收款銀行拒絕入帳
  • 跨境匯款被中轉行退回

收到銀行退回通知後:

  1. 確認退回資金已到達公司帳戶
  2. 執行出金沖正
  3. 通知用戶,引導重新發起出金(如需更正銀行資訊)

BST 入金退款(REFUNDED)

Runbook:BST 退款

觸發:收到天星 API REFUNDED 狀態告警 判斷:確認退款原因(天星 API 錯誤資訊) 操作:核實餘額回滾 → 通知用戶 → 引導重新入金 驗證:證券帳戶餘額已正確扣減,用戶已收到通知

這是天星 BST 獨有的異常狀態——招行/民生沒有退款機制。

觸發條件

  • 銀行側事後發現交易異常(合規問題)主動發起退款
  • 銀行風控系統事後攔截

系統行為

  1. 收到天星 API 返回的 REFUNDED 狀態
  2. 系統自動觸發沖正:撤回已入帳到證券帳戶的資金
  3. 更新入金記錄狀態
  4. 觸發告警通知運營

運營操作

  1. 確認退款原因(查看天星 API 返回的錯誤資訊)
  2. 核實用戶證券帳戶餘額是否已正確回滾
  3. 通知用戶並說明原因
  4. 如需重新入金,引導用戶發起新的入金操作

REFUNDED vs FAILED

  • FAILED — 銀行拒絕入金指令,資金從未到帳,無需沖正
  • REFUNDED — 入金已成功後銀行退回,系統需執行沖正,更複雜

沖正操作對比

入金沖正出金沖正BST 退款
觸發方運營主動運營主動 / 銀行退回銀行自動
資金方向從證券帳戶扣回退回到證券帳戶從證券帳戶扣回
前置狀態已完成(2)已完成(4)已完成
結果狀態已沖正(5)已沖正(5)REFUNDED
涉及銀行所有所有僅天星
權限CASH_IN_TASK_REVERSE系統自動

流水退款操作

流水退款與任務沖正不同——它只標記銀行流水狀態,不影響證券帳戶餘額。適用於銀行流水尚未匹配入帳的場景。

Runbook:流水退款

觸發:孤立流水無法匹配 / 銀行確認誤轉 / 錯誤流水需清理 判斷:確認 Flow.status = 0(待處理),確認流水不應入帳 操作:在 OA 對流水執行退款標記 驗證:Flow.result = 3(RESULT_REFUND)

操作入口

操作OA 路徑適用場景
單筆退款流水列表 → 選中 → 退款對單條流水標記退款
批量退款流水列表 → 批量選擇 → 批量退款月末清理多條無法匹配的流水
解鎖退款流水列表 → 已鎖定流水 → 解鎖並退款調查完成後確認需退款的鎖定流水

操作後驗證

#驗證項預期結果
1流水處置結果Flow.result = 3(RESULT_REFUND)
2流水狀態Flow.status = 1(已處理)
3證券帳戶餘額不變(流水退款不影響證券帳戶)

流水退款 ≠ 資金退回

流水退款只是系統內部標記——銀行側的資金退回需要另行聯繫銀行處理。標記退款後應通知銀行關係團隊安排實際退款。


退款管理模組

退款管理是獨立於沖正的業務流程,用於處理需要將資金退還給客戶的場景(如三方轉帳退款、不合規入金退款等)。

退款 vs 沖正

維度退款入金沖正
觸發方客服/客戶發起運營發起
影響退還客戶資金到銀行扣回已入帳資金
流程三步審核制單步操作
CRM 模組退款管理存入資金 → 已處理

三步流程

第一步:登記退款

維度說明
觸發客服收到客戶退款請求
操作CRM → 退款管理 → 退款列表 → 登記退款
內容通過流水記錄登記退款;關聯相關入金指令;補充退款憑證材料
驗證退款記錄狀態變為「待審核」

第二步:審核退款

維度說明
觸發退款列表中出現待審核記錄
操作CRM → 退款管理 → 退款列表 → 審核
判斷審核退款材料是否完整合規
通過退款記錄狀態變為「待處理」
不通過退回客服,要求補充材料或重新聯繫客戶

第三步:退款處理

維度說明
觸發退款列表中出現待處理記錄
操作CRM → 退款管理 → 退款轉帳 → 導出退款轉帳檔案
執行業務人員手動處理退款轉帳(檔案制)
驗證退款完成後標記狀態為「已處理」;確認客戶銀行帳戶收到退款

退款轉帳是檔案制

退款轉帳通過導出檔案、上傳網銀的方式執行(與普通出金類似),不是系統自動轉帳。需要按照出金相同的雙人授權流程完成。

退款操作要點

要點說明
退款與流水退還不同退款管理涉及實際資金退還給客戶;流水退還(reversal-guide § 流水退款操作)僅標記流水狀態,不退還資金
退款時效退款從登記到客戶收到資金通常需要 3~5 個工作日(含審核+銀行處理時間)
跨境退款跨境轉帳退款可能產生額外手續費,需提前告知客戶
清算日影響沖正和退款會影響 T+1 結算報表。避免在清算日下午 16:00 後發起沖正/退款——跨清算日的資金變動會導致當日結算金額變化,需通知清算團隊手工調整

沖正失敗處理

常見失敗原因與處理

失敗原因表現處理方式預計恢復時間
證券帳戶餘額不足SBA 返回餘額不足錯誤凍結帳戶 → 聯繫用戶釋放資金 → 重試數小時~數天
SBA 服務異常Procedure 逾時或系統錯誤確認 SBA 服務狀態 → 服務恢復後重試分鐘~小時
原 Procedure 狀態異常PROCEDURE_STATUS_END_OK 校驗不通過人工核實原入金 SBA 記錄 → 手工補償需開發協助
分步 Runbook:沖正失敗恢復

第 1 分鐘 — 確認失敗現象

  1. 沖正按鈕點擊後,Apply.status 是否仍為 2(未變為 5)?
  2. 查看 OA 返回的錯誤資訊

第 2~5 分鐘 — 定位原因 3. 查 SBA 日誌,搜尋對應的 Task ID 4. 確認 CashDepositReverse Procedure 的執行結果 5. 如果是餘額不足:查用戶可用餘額和持倉佔用

第 5~15 分鐘 — 恢復操作 6. 餘額不足

  • 凍結用戶帳戶(防止繼續交易/出金)
  • 聯繫用戶說明情況
  • 等用戶賣出持倉 / 出金到帳後,重新沖正
  1. SBA 異常
    • 確認 SBA 服務已恢復
    • 重新點擊沖正
  2. Procedure 異常
    • 不要反覆重試
    • 收集下方「升級資訊清單」中的資訊
    • 升級到入金開發團隊

超過 15 分鐘未恢復 → 升級到技術運維值班人員

升級開發時需提供的資訊

沖正失敗需升級開發時,一次性提供以下資訊(減少來回溝通):

#資訊獲取方式
1Apply ID / Task IDCRM 入金/出金任務詳情頁頂部
2SBA Task ID任務詳情頁 → SBA 記錄區域
3Procedure 名稱和執行狀態SBA 日誌中搜尋 Task ID
4錯誤資訊截圖CRM 沖正操作返回的報錯頁面
5用戶當前可用餘額證券帳戶查詢頁
6操作時間(精確到分鐘)告警時間或操作時間
7是否有在途出金/持倉佔用出金任務列表 + 持倉查詢

沖正時效參考

操作正常耗時說明
入金沖正(餘額充足)秒級SBA Procedure 通常幾秒完成
入金沖正(餘額不足)數小時~數天取決於用戶配合釋放資金的速度
出金沖正秒級資金退回證券帳戶
BST REFUNDED分鐘級系統自動執行
銀行側實際退款1~5 工作日取決於銀行和轉帳類型

批量沖正

當需要對多筆入金執行沖正(如批量錯誤入帳):

  1. 在 OA 入金列表篩選目標申請
  2. 確認每筆申請都滿足沖正前置條件(逐筆檢查餘額)
  3. 使用批量操作功能(/deposit/batch with action=reverse)
  4. 注意:批量沖正是逐筆執行的——如果某筆失敗(如餘額不足),不影響其他筆的沖正
  5. 沖正完成後,逐筆確認 Apply.status = 5

如果需求變更:修改沖正流程

程式碼位置

  • 入金沖正:deposit/src/app/Business/Deposit.php:877-935(reverse() 方法)
  • 出金沖正:withdraw/src/app/Business/Tasks/Handler/Reverse.php
  • SBA 反向 Procedure:deposit/src/app/Business/SOA/SBA/Deposit.php:309turnAround('CashDepositReverse')
  • 沖正中介軟體:deposit/src/app/Business/Tasks/Deposit.php:276-287

常見變更場景

  • 沖正前增加審批步驟 → 在沖正邏輯前添加審批檢查(當前沖正是直接執行,無二次審批)
  • 沖正後不自動解綁銀行卡 → 移除 reverse() 中的解綁邏輯
  • 增加沖正金額上限 → 在沖正前置校驗中添加金額檢查
  • 沖正通知模板修改 → 調整通知服務的訊息模板

詳細變更指南 → 入金變更指南 § 修改沖正流程 產品視角的退款機制 → 退款與沖正

讀完之後

我想...去看
排查入金沖正的完整場景入金排障
排查出金沖正和銀行退回出金排障
了解天星 REFUNDED 技術細節內銀系 BST 總覽
查凍結類型和出金規則出金規則手冊
查狀態碼和錯誤碼統一錯誤碼中心
了解三種退款機制的產品邏輯退款與沖正
查沖正相關的狀態碼和 API入金規則速查 § 沖正參考數據
了解 CRM 各模組操作CRM 操作地圖
了解 eDDA 扣款失敗處理eDDA 排障指引
這個頁面有幫助嗎?

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