Skip to content

入金方式总览

本页说明

讲什么:10 种入金方式的分类、体验差异和选择建议,以及一笔入金从申请到到账的完整生命周期 适合谁:需要了解入金渠道全貌、帮助用户选择最优方式的产品经理 前置阅读新人导读预计阅读:7 分钟 负责人:入金产品经理

核心要点:入金有 10 种方式,按自动化程度分为 Push(用户主动转入,最常见)、Pull(eDDA 代扣)、BST(银证互转)三大类。一笔入金从申请到到账经历"申请→流水采集→匹配→入账→对账"五步。


入金系统全景图

下面这张图展示了入金系统的完整拓扑——从用户操作到资金到账,每个节点标注了对应的文档页面。建议新 PM 先花 2 分钟看懂这张图,再逐页深入。

图中各节点对应的文档

节点对应页面关键内容
Apply 申请表入金规则速查申请状态码、分表策略、核心字段
流水采集服务银行流水采集12 家银行的采集方式、协议、时效
匹配引擎匹配与自动入账五维匹配、银行专属规则、容差设计
自动入账判定匹配与自动入账限额、2412 规则、风控检查
运营 OA 审核人工匹配指引运营操作流程、审批权限
eDDI 扣款eDDA 代扣入金授权生命周期、扣款链路、错误码
BST 指令BST 银证转账招行/民生/天星的银证协议
SBA 入账SBA 资金编排Procedure 执行模式
异常处理入金排障9 个场景 + Runbook
变更指导入金变更指南10 种变更场景的操作指南
冲正/退款退款与冲正三种退款机制、决策树、失败恢复

三种入金模式

用户把钱从银行转到证券账户,有三种截然不同的"发起方":

Push(用户推):用户在银行 App 操作转账,钱到公司账户后,系统需要通过匹配引擎识别"这笔钱是谁的"。好处是无需预授权,任何银行都能用;代价是需要匹配,到账不够即时。

Pull(系统拉):用户在 moomoo App 一键操作,系统直接从用户银行账户扣款。系统自己发起的扣款天然知道资金归属,完全跳过匹配引擎。体验最好,但需要用户提前完成银行授权(eDDA),且仅汇丰和恒生支持。

Direct(银证直连):银行与证券公司的专线通道,系统通过银证协议发起扣款。与 Pull 类似,不需要匹配引擎,但走的是不同的技术协议(SM2 加密的银证专线)。仅招行、民生、天星支持。


10 种入金方式一览

代码方式模式支持银行用户操作到账时效
3FPS 转数快Push渣打、广发、中银、恒生、工银银行 App 转账3~5 分钟
9eDDA 汇丰Pull汇丰App 内一键数分钟
8eDDA 恒生Pull恒生App 内一键数分钟
1BST 银证Direct招行、民生App 内一键~10 分钟
10天星银证Direct天星App 内一键~10 分钟
5网银转账Push几乎所有银行网上银行转账2 小时~3 天
2ATM/柜台Push大部分银行去 ATM/柜台2 小时~次日
4缴付账单Push支持 BP 的银行银行缴费功能2 小时~次日
6支票Push可开支票的银行开支票2~3 天
7海外汇款PushEWB、众安、新加坡工银子账户跨境汇款3~5 天

表格按用户体验排序——越上面的方式体验越好、到账越快。所有方式都支持 HKD 和 USD;FPS、网银、ATM 等 Push 方式额外支持 CNH。

入金量分布(产品优先级参考)

下面这张饼图展示各通道的入金量占比,帮助判断优先级:

关键结论

  • 汇丰 eDDA 是绝对主力(72%)——任何影响 eDDA 的变更都应优先保障,回归测试必须覆盖汇丰通道
  • Pull 模式(eDDA)合计近 80%——验证了"用户偏好一键入金"的产品判断
  • 工银是第二大来源(12.3%),但系统限制最多——涉及工银的变更需额外注意
  • BST 银证(招行+民生+天星)合计约 4%,但对特定用户群体是唯一选项
数据说明

入金量占比基于近期业务统计,不同时段可能有波动。仅作为产品优先级参考,不代表精确实时数据。


每种方式的处理管线

三种入金模式在系统内部走完全不同的处理链路。下面分别展开。

Push 管线(FPS / 网银 / ATM / BP / 支票 / 海外汇款)

关键系统

  • 流水存储:flows_{trans_type}_{month} 分表,按银行和月份分片
  • 匹配调度:match:{bank} 定时任务,每 3 分钟一轮
  • 匹配结果常量定义在 MatchResult.php,流水处置结果定义在 BankFlow.php

详见 银行流水采集匹配与自动入账

Pull 管线(eDDA 汇丰 / 恒生)

特点:系统自己发起扣款,天然知道资金归属,跳过匹配引擎

关键数据表

  • 入金申请:applys_{shard}(按用户 ID 分片)
  • 汇丰 eDDI:hsbc_eddis;恒生 eDDI:hs_eddis
  • 授权管理:setup_eddis

详见 eDDA 代扣入金

Direct 管线(BST 招行 / 民生 / 天星)

特点:走银证专线协议(SM2 加密),同样跳过匹配引擎。招行/民生走 Socket 长连接,天星走 REST API。

详见 BST 银证转账


Pull 模式:eDDA 入金

eDDA(Electronic Direct Debit Authorization)是体验最好的入金方式——用户在 moomoo App 内填金额、点确认,不需要切换到银行 App。对于绑定了汇丰或恒生的用户,eDDA 是转化率最高的入金方式。

前提:一次性授权。用户首次使用前,需完成 eDDA 授权,允许系统从其银行账户扣款。授权通过后长期有效,后续入金无需重复授权。

为什么 eDDA 跳过匹配引擎? 因为这笔扣款是系统自己发起的——系统在发起扣款请求时就知道这笔钱属于哪个用户、对应哪笔申请。不存在"这笔钱是谁的"的问题。

汇丰和恒生的 eDDA 在协议和授权规则上有显著差异,详见 eDDA 代扣入金

为什么 eDDA 只有汇丰和恒生?

eDDA 是 HKMA(香港金管局)FPS 体系的一部分,技术标准统一,但每家银行的 API 实现、审核流程、商务条件各不相同。当前只有汇丰和恒生完成了全部对接(商务签约 + 技术联调 + 生产验证)。其他银行是否支持 eDDA、何时可接入,取决于银行侧的技术就绪度和商务合作意愿。想评估新增 eDDA 银行的可行性 → 入金变更指南 § 新增 eDDA


Push 模式:FPS、网银及其他

Push 模式的共同特点:用户在银行侧操作转账 → 资金到达公司银行账户 → 系统通过匹配引擎识别归属 → 入账。

FPS 转数快

FPS 是 Push 模式中体验最好的——转账即时到账,流水实时推送到系统,匹配引擎 3 分钟一轮,通常 3~5 分钟全自动完成。

为什么 FPS 这么快?两个原因:一是 FPS 网络本身即时结算(不像跨行转账要 T+1 清算);二是渣打和广发通过 API 实时推送 FPS 流水,不需要等批量文件。

网银转账

覆盖范围最广的入金方式,几乎所有银行都支持。但到账时效差异大:

  • 同行转账(发送银行 = 收款银行):~2 小时
  • 跨行转账(HKD):2~3 个交易日
  • 跨行转账(外币):3~4 个交易日

为什么同行和跨行差这么多?同行转账在银行内部结算,当天处理。跨行需要通过银行间清算系统(CHATS),走批量清算周期。

其他 Push 方式

方式适合谁特殊之处
ATM/柜台偏好线下操作的用户需上传转账凭证,凭证不清楚会要求补充
缴付账单(BP)熟悉银行缴费功能的用户匹配时额外校验 BP 编号,精度更高
支票偏好传统方式的用户清算周期 2~3 天
海外汇款境外银行账户的用户通过子账户号匹配(非银行卡号),容差较大因中转行扣费不可控

Direct 模式:BST 银证转账

BST(Bank-Securities Transfer)是银行和证券公司之间的专线通道。与 eDDA 类似都是系统侧发起扣款,区别在于 BST 走银证专线协议,使用国密算法加密通信。

银行入金方式 Key特点
招行bst通过银证双向链路,事件驱动
民生bst同招行
天星bstAsb虚拟银行,API 对接

前提:用户需完成银证账户绑定。绑定后可在 moomoo App 内一键入金。

处理时段:周一 08:00 ~ 周五 16:00。非营业时段的入金顺延到下一交易日自动处理。

为什么 BST 只有招行、民生、天星?

BST(银证转账)是中国特色的银证直连协议,通过 SM2 国密加密专线通信。只有在香港设有分支的大陆银行才具备银证转账能力。招商银行和民生银行是最早在港开通银证的两家,天星银行(虚拟银行)通过 API 适配了类似协议。其他外资银行(汇丰、恒生、渣打等)不使用银证协议,走各自的入金通道。


从申请到到账:完整生命周期

无论哪种入金方式,一笔入金都会经历以下生命周期:

状态含义典型触发
待处理(0)用户已提交,等待资金确认用户在 App 提交入金申请
处理中(1)资金已确认,正在入账Push: 匹配成功;Pull/Direct: 银行扣款回调成功
已完成(2)入金成功,资金到账SBA Procedure 执行完毕
已驳回(3)申请被拒绝超时未到账自动驳回 / 运营主动驳回
已撤回(4)用户取消用户在 App 主动取消
已冲正(5)已到账资金被撤回银行退款、错误入账纠正

三种模式的关键差异在"待处理→处理中"这一步

  • Push:需要等银行流水到达 + 匹配引擎匹配成功,可能几分钟到几天
  • Pull(eDDA):系统发起扣款 → 银行回调成功,通常几分钟
  • Direct(BST):系统发起扣款 → 银行回调成功,通常几分钟

详细的状态码和枚举值 → 入金规则速查


入金类型与流程模板

每笔入金在创建时会被赋予一个 DepositType,决定这笔入金走哪个流程模板(即需要哪些审批步骤)。

代码类型触发场景是否需人工流程模板
1NORMAL流水匹配 + 自动入账FLOW_NO_CONFIRM
2PRE_APPROVAL线上开户首次入金看情况FLOW_PRE_CONFIRM
3ABNORMAL运营手工创建FLOW_PRE_CONFIRM_ABNORMAL
4TRANS_AUTO前端精确匹配FLOW_NO_CONFIRM
5HIGH_RISK命中风控(黑名单/高风险国家)FLOW_CONFIRM
11NORMAL_HOLDeDDI + 基金定投冻结FLOW_NO_CONFIRM
21STOCK_HOLDeDDI + 股票定投冻结FLOW_NO_CONFIRM
31FUND_PURCHASE_HOLDeDDI + 基金申购冻结FLOW_NO_CONFIRM
5 种流程模板详解

每种流程模板定义了入金从"待处理"到"已完成"需要经过的步骤:

模板步骤场景
FLOW_CONFIRM[SBAConfirm]需运营确认后 SBA 入账,用于高风险入金
FLOW_NO_CONFIRM[BankPending]全自动,等 SBA 完成即可,最常见的模板
FLOW_PRE_CONFIRM[Confirm, AccountPending]线上开户用户,需运营确认 + 等待账户就绪
FLOW_PRE_NO_CONFIRM[AccountPending]线上开户用户,自动入账 + 等待账户就绪
FLOW_PRE_CONFIRM_ABNORMAL[Confirm, AccountPending, SBAConfirm]异常场景全流程,三重关卡
  • Confirm:运营在后台确认入金合规性
  • AccountPending:等待用户证券账户开通完毕(线上开户场景)
  • SBAConfirm:调用 SBA Procedure 完成资金入账
  • BankPending:等银行侧处理完成,无需人工介入

代码来源deposit/src/app/Business/Deposit.php:55-230deposit/src/app/Business/Tasks/Deposit.php:68-80


如何选择入金方式

作为产品经理,推荐入金方式的优先级:

核心原则:Pull/Direct > Push。能避免匹配引擎的方式,体验和确定性都更好。

场景推荐方式原因
新用户首次入金FPS(如果支持)或 网银无需预授权,门槛最低
高频入金用户eDDA 或 BST一键体验,无需反复操作
大额入金(超自动限额)任意方式超限后需人工确认,方式不影响
境外用户海外汇款唯一选择,通过子账户匹配

入金方式可用性判断

系统根据以下因素决定用户能看到哪些入金方式:

因素影响配置来源
已绑定的银行卡决定可用的银行通道bankcard_service 数据库,用户绑卡时写入
eDDA 授权状态未授权则不显示 eDDAsetup_eddis 表,授权成功后写入
BST 绑定状态未绑定则不显示 BSTbst_bindcards 表,银证签约后写入
用户所在地香港/大陆/海外看到的方式不同用户注册信息 + deposit 配置文件中的地区规则
选择的币种JPY、SGD 仅部分方式支持deposit/config/trans_type.php 币种-方式映射
开户方式线上/线下开户可用方式有差异用户账户表 account_type 字段

各方式处理时段与暂停窗口

不是所有入金方式 7×24 运行。以下是每种方式的精确处理时段:

方式处理时段暂停窗口非工作时段行为
eDDA 汇丰/恒生周一 07:00 ~ 周六 10:0008:55~09:00, 16:05~16:10排队等下一交易日
BST 招行/民生交易日 07:00 ~ 次日 04:0008:55~09:00, 16:05~16:10排队等下一交易日
BST 天星交易日 08:00 ~ 22:00排队等下一交易日
FPS与 BST 类似08:55~09:00, 16:05~16:10自动入账暂停,辅助匹配继续
匹配引擎7×24(每 3 分钟)08:55~09:00, 16:05~16:10匹配照跑,但自动入账受时段限制
网银/ATM/支票流水到系统后等待匹配,不受时段限制

16:00~16:10 暂停原因:收盘后系统对证券账户余额进行对账(2412 规则),此窗口内任何自动入金都会暂停,避免资金变动干扰对账。


如果需求变更:新增一种入金方式

代码位置

  • 入金方式定义:deposit/proto/server/cash_deposit.proto — 添加新的入金方式枚举值
  • 方式配置:deposit/src/app/Common/DepositMethodConfig.php(如存在)或 deposit/config/ 目录
  • 前端展示:需同步更新 App 端的入金方式列表

步骤

  1. 定义新方式的 Key 和 代码编号(确保不与现有 1~10 冲突)
  2. 确定模式:Push/Pull/Direct — 决定是否需要匹配引擎
  3. 如果是 Push 模式 → 需要新增 Match 类(参考 BocMatch.php
  4. 如果是 Pull/Direct → 需要新增 SBA 编排服务(参考 sba_hase_eddi
  5. 配置处理时段、容差规则、超时驳回天数
  6. 在可用性判断逻辑中添加新方式的展示条件
如果需求变更:修改入金方式的可用性规则

代码位置deposit/src/app/Business/ 目录中的可用性判断逻辑

常见变更场景

  • 某银行新增 FPS 支持 → 在 FPS 可用银行列表中添加该银行的 TransType
  • 取消某种入金方式 → 在可用性判断中将该方式的条件设为 false
  • 修改线上开户限制 → 调整 account_type 相关的判断分支
  • 修改地区限制 → 调整 area 相关的判断分支
如果需求变更:调整入金处理时段

代码位置deposit/src/app/Business/DepositConfigNew.php

关键配置项

  • 营业时段开始/结束:约第 34-50 行,定义周一~周五的处理窗口
  • 周六特殊处理:到 09:55 关闭(约第 498 行)
  • 暂停窗口(2412 规则):16:05~16:10(约第 603-641 行)
  • USD 特殊开始时间:09:01(约第 440 行)

注意:修改处理时段会影响所有依赖该时段的入金方式(eDDA、BST、匹配引擎的自动入账判定),需全面评估影响。

角色阅读路径

不同角色关注的重点不同,建议按以下路径阅读:

🆕 新入职 PM(第一周)

顺序页面目标预计时间
1本页(入金方式总览)理解 3 种模式 + 10 种方式7 分钟
2新人导读跟着 3 个场景走查一遍15 分钟
3匹配与自动入账理解匹配引擎核心逻辑7 分钟
4入金排障 § 场景一和二掌握 70% 的日常问题5 分钟
5入金规则速查知道数字在哪里查浏览 2 分钟

💼 需要推动变更的 PM

顺序页面目标
1入金变更指南找到对应场景,看影响链和审批要求
2入金规则速查确认当前参数值
3对应的专题页理解变更涉及的具体模块

🔧 运营人员

顺序页面目标
1入金排障掌握 9 个场景的排查路径
2人工匹配指引掌握日常匹配操作
3本页 § 入金方式一览了解各方式时效
4银行流水采集理解流水到达机制

常见误解

误解事实
"入金只有一种方式"有 10 种,分为 Push/Pull/Direct 三种模式,体验和时效差异极大
"eDDA 和出金有关"eDDA/eDDI 仅用于入金代扣。出金走企业网银转账
"所有入金都需要匹配引擎"只有 Push 模式需要。Pull(eDDA)和 Direct(BST)跳过匹配引擎
"入金到账时间取决于我们系统"大部分等待时间是银行流水到达的延迟,不是我们系统处理慢
"BST 银证和 eDDA 代扣是同一种技术"完全不同。BST 走银证专线(SM2加密Socket),eDDA 走 FPS 体系(HTTPS/SM2 HTTP)
"自动入账 = 秒到"自动入账也需要等匹配引擎的 3 分钟周期 + SBA 入账时间。最快也要 3~5 分钟

读完之后

我想...去看
了解绑卡与授权如何开启入金通道银行卡绑定与入金授权
了解匹配引擎怎么工作匹配与自动入账
了解 eDDA 代扣完整流程eDDA 代扣入金
看各银行流水怎么进系统银行流水采集
入金出问题了怎么办入金排障
查限额、容差、超时的数字入金规则速查
推动入金变更需求入金变更指南
了解退款和冲正机制退款与冲正
这个页面有帮助吗?

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