Skip to content

出金排障

本页说明

讲什么:出金过程中的常见异常——按"用户/运营看到什么症状"组织,给出排查路径和处理方式 适合谁:需要处理出金问题的运营人员,需要理解异常流程的产品经理 前置阅读出金生命周期预计阅读:4 分钟 负责人:出金运营主管

核心要点:出金异常按错误码快速定位——BST 回调超时、通道无法自动选择(method=null)、银证授权异常、余额冻结失败是最常见的四类问题。


按错误码/状态码快速定位

错误码/状态含义跳转
回调码 -5招行/民生 BST 超时场景二 § BST 回调
回调码 -6招行/民生 BST 拒绝场景二 § BST 回调
天星 PENDING 超时天星轮询超时场景二 § 天星轮询
天星 FAILED天星指令失败场景二 § 天星轮询
天星 REFUNDEDBST 入金退款场景八
method = null系统无法自动选通道场景一 § Confirm 卡住
Mandate ≠ OPEN银证授权异常场景七
140630xxx天星错误码出金数据字典
冻结类型=2 (CASH_OUT)出金冻结场景六
任务状态=5出金已冲正场景五

完整错误码 → 统一错误码中心


快速诊断:用户说"钱没到"

收到用户反馈"我已经提了出金但钱没到银行卡"时,按以下顺序排查:

大部分"钱没到"的原因是审批流程还在进行中——尤其是非 BST 通道的出金,需要运营手动操作多个步骤。


场景一:审批卡在某一步

症状:出金任务状态为"处理中",但长时间没有推进到下一步。

卡在哪一步可能原因处理方式
Audit高风险审核排队中检查风控标记原因,审核通过后点击 NEXT
Confirm运营未及时处理 / 银行卡信息需确认验证银行卡状态,确认通道后点击 NEXT
Remittance自动出金条件不满足 / 运营未手动触发检查 6 个自动出金条件,手动点击执行转账

Confirm 卡住最常见的原因method = null(系统无法自动选择通道)。运营需要根据用户的银行卡手动选择合适的出金通道(网银 / FPS / 手工等),然后才能推进到 Remittance。


场景二:银行回调失败

症状:Remittance 已经执行了 startTransfer(),但银行回调结果不是成功。

招行 / 民生 BST 回调异常

回调码含义系统处理运营操作
-5超时自动切换备用 exit_server 重试通常不需要干预,等待重试结果
-6银行拒绝标记失败联系银行确认拒绝原因,可能需要换通道重新出金

BST 超时(-5)通常是网络抖动——系统会自动尝试备用服务器。如果重试也失败,运营需要手动确认银行侧状态:钱是否已经扣出?

天星 BST 轮询异常

天星不是实时回调,而是系统轮询获取结果,因此异常模式不同:

异常触发条件系统处理运营操作
轮询超时AsbBstTransfer 10 次轮询后仍 PENDING进入 SyncAsbBstWithdraw 2 小时兜底同步等待,关注告警
同步超时2 小时同步窗口结束仍 PENDING标记异常人工查询天星 API 确认银行侧状态
指令失败天星返回 FAILED释放冻结资金查看 140630xxx 错误码定位原因

关键区别:招行/民生的"-5 超时"通常秒级可恢复(切换备用服务器),天星的轮询超时可能需要等待最长 2 小时 + 人工介入。

天星错误码 → 出金数据字典 § 天星错误码

网银 / FPS 回调异常

网银和 FPS 通道的异步回调周期可能更长。如果长时间没有回调:

  1. 检查银行侧的交易状态
  2. 确认出金指令是否成功发送
  3. 必要时联系银行核实

场景三:自动出金条件不满足

症状:BST 通道出金,Remittance 步骤没有自动执行,需要人工操作。

6 个自动出金条件中任何一个不满足,系统就会降级为人工模式。常见情况:

不满足的条件表现处理
金额超限大额出金没有自动执行运营确认金额合理后手动触发
每日超 10 笔当天同一用户多笔出金确认非异常操作后手动触发
自动开关关闭某币种的自动出金被关闭检查 auto_settings 表,确认是否需要重新开启
余额不足可用余额小于出金金额通知用户余额不足

这不是故障

自动出金条件不满足是正常的安全机制,不是系统故障。运营确认后手动执行即可。


场景四:出金被风控拦截

症状:用户在 App 发起出金时被拒绝,或出金任务进入了 Audit 步骤。

黑名单命中

hk-withdraw-blacklist-go 检查出金目标账户是否在黑名单中。命中黑名单的出金会被直接拒绝,不会创建出金任务。

运营处理:

  1. 确认黑名单命中原因
  2. 如果是误报,联系风控团队更新黑名单
  3. 用户需要重新发起出金

高风险标记

用户账户被风控标记为高风险时,出金会多一步 Audit 审核。这不是拒绝——审核通过后出金正常进行。


场景五:出金后冲正

症状:出金已完成(状态=已完成),但需要把资金追回。

冲正是低频但影响重大的操作,可能的触发原因:

原因说明
银行退回银行侧退回了已汇出的资金
错误出金运营发现出金信息有误(如出错了用户)
风控事后拦截出金完成后风控发现异常

冲正流程

  1. 运营在 OA 发起冲正(动作:REVERSE)
  2. 系统检查当前状态——只有"已完成"的任务才能冲正
  3. 执行冲正:更新任务状态为"已冲正"(5)
  4. SBA 执行反向资金操作
  5. 通知用户出金已撤回

冲正后,任务状态变为 5(REVERSE)


场景六:用户无法发起出金

症状:用户在 App 点击出金时报错或无法提交。

原因用户看到的错误码解决方式
账户冻结"账户异常,无法出金"检查冻结类型(CASH_OUT=2),联系相关团队解冻
出金限制(风控)"您的账户暂时无法出金"140670003检查是否有出金限制标记
黑名单"账户被限制提取资金"确认黑名单原因,联系风控团队
银行卡无效"银行卡不存在"140670002引导用户重新绑定银行卡
余额不足"证券账户余额不足"140670005可能有资金被冻结(货币兑换、基金等)
穿仓"账户存在欠款"140670004用户需补足欠款后才能出金
GDCA 未完成"未完成 GDCA"140670009引导用户完成 GDCA 认证
NSS 问卷未完成"未完成 NSS 问卷"140670008引导用户完成 NSS 问卷
不动账户/休眠户"休眠户不支持出金"140670006用户需先激活账户
在线开户未入金满额"绑卡须转账 ≥ 10,000 港元"140670011引导用户先入金满足门槛
银行账户未认证"银行账户还未通过认证"引导用户完成银行认证
天星银证未授权"未授权银证"仅银行发起出金场景,引导授权
大陆银行卡"不支持提取到中国大陆银行账户"引导用户使用香港银行卡
A 股通 CNH 限制"CNH 仅支持提取到香港银行"选择香港银行账户出金
融资可提不足"超出现金可提金额"确认融资保证金要求
Payoneer 限制"Payoneer 账户不支持出金"选择其他银行卡
证券账户不存在"未开通证券账户/已销户"140670007引导用户开户

冻结类型速查 → 出金规则手册 § 冻结类型 前置校验错误码 → 出金数据字典 § 前置校验错误码


场景七:银证授权异常

症状:用户无法通过 BST 通道出金,或出金卡在 Confirm 步骤提示"银证授权状态异常"。

这类异常主要影响天星 BST 通道(Mandate 模型),招行/民生的传统签约模式较少出现。

异常症状可能原因处理
授权超时Mandate 长时间停在 PROCESSING银行处理延迟或通信中断等待银行处理;超时后人工查询天星 API
授权失败Mandate 变为 FAIL用户信息校验不通过 / 银行风控查看 140630xxx 错误码,引导用户重新授权
授权被取消Mandate 变为 CANCEL用户在银行端取消确认用户意图,必要时重新发起授权
部分市场失败3 个市场中部分绑定成功某市场的银证配置异常检查失败市场配置,手动补充绑定
状态不同步银行已取消但 moomoo 仍 OPEN同步回调丢失手动查询天星 API 同步最新状态

授权异常 vs 出金异常

授权异常阻止的是所有后续出入金(因为 Mandate 不是 OPEN),而出金异常只影响单笔交易。发现授权异常时应优先处理,避免影响更多交易。

Mandate 状态码 → 出金数据字典 § 银证授权状态码


场景八:BST 入金退款(REFUNDED)

症状:BST 入金已显示成功到账,但随后资金被银行退回。

这是天星 BST 独有的异常状态——REFUNDED。招行/民生的 BST 入金没有退款机制。

触发条件

  • 银行侧事后发现交易异常(如合规问题)主动发起退款
  • 银行风控系统事后拦截

系统行为

  1. 收到天星 API 返回的 REFUNDED 状态
  2. 系统触发冲正:撤回已入账到证券账户的资金
  3. 更新入金记录状态
  4. 触发告警通知运营

运营操作

  1. 确认退款原因(查看天星 API 返回的错误信息)
  2. 核实用户证券账户余额是否已正确回滚
  3. 通知用户并说明原因
  4. 如需重新入金,引导用户发起新的入金操作

REFUNDED ≠ 入金失败

入金失败(FAILED)是指银行拒绝了入金指令,资金从未到账。REFUNDED 是入金已经成功后银行又把钱退回来——系统需要做冲正操作,比处理普通失败更复杂。


出金排障中绝对不要做的事

  • 不要对"处理中"状态的任务执行冲正——资金可能正在银行侧流转,强行冲正会导致资金状态不一致
  • 不要在 BST 当日 15:55 截止后重新触发 startTransfer()——会导致次日重复出金
  • 不要手动修改数据库中的任务状态码绕过审批步骤——破坏审计链,违反内控要求
  • 不要在银行回调码为 -5(超时)时立即驳回任务——系统会自动重试,大部分秒级恢复

按通道故障排查

上面按"症状"排查,这里补充按"出金通道"分类的常见故障。12 种 method 码对应的通道详见 银行能力矩阵 § 出金方法码

BST 银证出金(method=auto_bs)— 详细 Runbook

Runbook:BST 出金未到账

触发:客户反映银证出金已显示"已完成"但资金未到银行账户

第 1 分钟 — 确认状态:

  1. CRM 出金任务 → 查任务状态字段和银行回调结果
  2. 招行/民生:回调码 = -5(超时)→ 系统自动切换备用 server,等待重试结果
  3. 招行/民生:回调码 = -6(拒绝)→ 银行明确拒绝,查看拒绝原因
  4. 天星:状态 = PENDING → 轮询中,等待 AsbBstTransfer 完成(最多 10 次)

第 5 分钟 — 深入排查: 5. 天星轮询 10 次用尽仍 PENDING → 进入 SyncAsbBstWithdraw 2 小时兜底窗口,此时不要人工操作 6. 天星返回 FAILED → 查看 140630xxx 错误码 → 释放冻结资金 → 通知用户 7. 招行/民生重试也失败 → 确认银行侧资金是否已扣出(关键!)

第 15 分钟 — 升级: 8. 天星 2 小时兜底窗口结束仍未回调 → 严重告警,人工查询天星 API 确认银行侧实际状态 9. 招行/民生确认资金已扣出但系统未更新 → 联系银行对接人 + 通知技术运维手动同步状态

中银 FTS 出金(method=boc / boc_fps / tele_transfer)

异常可能原因处理
FTS 文件未送达SFTP 连接异常或 S14 文件生成失败检查 bochk_relay 日志,确认 SFTP 连通性
状态长时间无更新S16 回执文件未返回手动登录中银 FTS 系统查询,确认文件状态
状态 F(失败)收款信息有误或账户异常查看错误描述,联系中银确认后修正信息重新出金
状态 R(退回)银行退回已汇出资金确认退回原因,必要时修正收款信息重新发起
状态 C(取消)出金被取消确认取消来源(系统/运营/银行),必要时重新发起
FPS 排除银行命中收款银行在 FPS 排除列表中改用 boc(同行)或 tele_transfer(跨境)通道

广发 FPS API(method=cgb_fps_api)

异常可能原因处理
状态码判断错误2063 和 2065 的同一状态码含义相反确认消息类型再判断 → 广发状态码反转
批量降级为单笔2064 批量发送失败系统自动拆为 2063 单笔重发,检查降级日志
SIGN_ERROR签名或验签失败检查签名密钥配置,确认广发侧是否更换了密钥
A012 重复流水号请求 ID 重复确认是否为重复发送,不可重试
A014 系统繁忙银行侧负载高系统自动重试,持续失败则等待恢复
UNKNOWN 状态批量结果无法确认需人工登录广发系统查询确认

企业网银出金(method=hase / hsbc)

异常可能原因处理
长时间未操作运营未及时登录网银执行转账检查运营排班,确认 Remittance 步骤是否已触发
网银 session 超时银行网银登录过期重新登录网银,继续操作
转账被银行拒绝金额超限或收款信息有误核实银行侧限额和收款信息,修正后重新操作

渣打 FPS(method=sc)

异常可能原因处理
Webhook 未收到渣打推送延迟或 endpoint 不可用主动调用 Payment Status 接口查询实际状态
FAILED 状态FPS 转账失败查看原因码,必要时换通道 → 渣打状态码
RETURNED 状态银行退回转账确认退回原因,修正收款信息后重新出金
JWT 认证失败Token 过期(仅 30 秒有效)检查服务器 NTP 时钟同步

EWB 电汇(method=ewb)

异常可能原因处理
到账时间长跨境电汇通常 1-3 个工作日正常等待,超过 3 日联系 EWB 确认
转账被退回收款信息有误(SWIFT 代码/账号等)核实收款信息后重新发起

CHATS/RTGS(method=chats_rtgs)

异常可能原因处理
清算延迟CHATS 系统每日有固定清算窗口在清算时间内等待,非工作时间顺延至下一工作日
金额不到账清算手续费扣减属正常,告知用户银行清算可能产生手续费

人工出金(method=manual)

异常可能原因处理
长时间处理中运营未手动操作工银网银检查排班和任务分配,手动完成转账
转账失败工银账户余额不足或收款信息有误核实后重新操作

运营工具清单

工具用途所需权限
出金任务列表查看/筛选所有出金任务
Audit 审核高风险出金审核PERMISSION_CASH_TASKS_OUT_AUDIT
Confirm 确认确认银行卡和通道PERMISSION_CASH_TASKS_OUT_CONFIRM
Remittance 汇款执行出金转账PERMISSION_CASH_TASKS_OUT_REMIT
冲正撤回已完成的出金
跟进标记任务为跟进中
转交将任务转给其他运营
Mandate 状态查询查询银证授权状态(天星)
BST 轮询状态查看天星轮询进度和结果

监控与告警

系统通过以下机制监控出金异常:

监控项方式告警条件告警渠道
队列事件堆积cron 每分钟检查待处理事件数超过阈值飞书告警
BST 轮询超时天星 SyncAsbBstWithdraw 兜底2 小时窗口后仍 PENDING飞书告警
自动出金余额不足autoOut() 扣减时判断余额 < alarm_amount飞书告警
自动出金余额熔断autoOut() 扣减时判断余额 < stop_amount飞书告警 + 自动关闭该币种自动出金
天星 Mandate 异常定时状态同步Mandate 状态非 OPEN 但有出金任务飞书告警
招行/民生回调异常回调处理回调码 = -5(超时)或 -6(拒绝)飞书告警

告警处理优先级

收到告警时按以下优先级处理:

优先级告警影响操作
P0队列事件堆积所有出金任务卡住不推进检查队列消费者进程是否在运行,重启服务
P0自动出金余额熔断该币种所有 BST 出金降级为人工"充值" auto_settings 余额 + 重新开启开关
P1BST 轮询超时单笔天星出金状态不明人工查询天星 API 确认银行侧状态
P1招行/民生回调 -6单笔出金被银行拒绝联系银行确认拒绝原因,可能需换通道
P2余额报警告知余额接近熔断线关注后续出金量,必要时提前"充值"
P2Mandate 异常影响该用户后续所有出入金引导用户重新授权

常见误解

误解事实
"用户说钱没到就是系统故障"大部分是审批流程还在进行中——尤其是非 BST 通道需要运营手动操作多个步骤。先按诊断流程图排查任务状态
"BST 回调超时(-5)就是出金失败"不是。系统会自动切换备用 exit_server 重试,通常秒级恢复。只有重试也失败才需要人工介入
"自动出金条件不满足是系统故障"是正常的安全机制,不是故障。运营确认金额和操作合理后手动触发执行即可
"冲正后资金会自动退回用户银行卡"不会。冲正只是把"已完成"的出金在系统内撤回(状态改为 REVERSE),资金回到证券账户。退回银行卡是另一个操作

读完之后

我想...去看
理解出金完整流程(才能排查卡在哪一步)出金生命周期
看某条规则的详细解释出金规则手册
看某通道的技术执行细节通道执行手册
查回调码、状态码的具体数字出金数据字典
深入了解 BST 银行异常处理内银系 BST 总览
这个页面有帮助吗?

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