天星银证概览

天星银证(Airstar Bank-Securities Transfer)是富途与天星银行合作的直连银证转账服务,属于"互信开户二期"核心功能。客户在 moomoo APP 内授权后,可实时从天星银行账户转入证券账户(入金),或反向转出(出金),全程免费,最快5分钟到账。

系统标识
BANK_ID = 55
TransType=304 · Method=10(bstAsb) · 银行代码008
支持币种
HKD / USD / CNH
CNH无限额是天星独家优势
到账时间
5 分钟
交易日服务时间内,单笔<1000万
卡号格式
12 位数字
非传统16-19位,天星银行特有

核心能力

能力状态说明
BST 银证入金/出金支持双向发起(moomoo端 + 银行端)
Mandate 授权支持6状态机,一次授权覆盖HK/US/CN三市场
线上开户支持三合一:开户+授权+首笔入金
CNH 全面支持独家CNH无限额,招行/民生不支持或受限
eDDA 代扣支持单笔HKD 200K,日5笔/HKD 1M
FPS 转数快不支持
FUTU发起取消银证接口已对接本期不做

双向发起模型(天星独有)

操作FUTU→银行银行→FUTU
授权银证支持支持
取消银证本期不做支持
入金支持 source=1支持 source=2
出金支持支持
入金退款FUTU发起不接受
出金退款不发起接受

系统架构

服务架构

组件技术栈职责
airstar_serviceGo天星银证核心:授权、入金、出金、退款
bank-cardPHP银行卡管理,存储授权状态
cash_servicePHP资金服务(含HSBC eDDA参考)
sba_deposit_systemPython入金流水处理
withdrawPHP出金相关

队列驱动状态机

天星银证核心设计是队列驱动的异步状态机。每个操作通过队列推进:

授权队列 (queue_auth)

new set_card_processing send_bank_req query_bank update_card_result notice_user success/fail

入金队列 (queue_deposit)

new notify_bank_approval query_transfer write_flow success

出金队列 (queue_withdraw)

new notify_bank_approval query_transfer write_flow success

数据库关键表

用途关键字段
auth_info授权最终结果cid, bank_card_number, mandate_id, auth_result
auth_proc授权过程跟踪status, fail_code, fail_reason
deposit_proc入金交易跟踪ref_id, bank_ref_id, amount, currency, status
withdraw_proc出金交易跟踪ref_id, bank_ref_id, amount, currency, status
bank_request银行来请求type(auth/cancel/deposit/withdraw), payload
biz_log业务审计日志所有状态变更的JSON记录
id_card_type 字段为 varchar,无需数据库迁移即可新增证件类型。

银行对比矩阵

BST 三家银行对比

维度招行 CMB民生 MS天星 Airstar
协议SM2加密 Socket二进制SM2加密 Socket XMLREST API + RSA-OAEP
通信模式Socket推送(实时)Socket推送(实时)HTTP轮询(分钟级)
核心标识银行卡号银行卡号mandate_id
授权模型银证签约(2状态)银证签约(2状态)Mandate授权(6状态)
CNH支持受限全面支持(无限额)
处理时段08:40-15:5908:40-15:5908:30-15:59
退款机制REFUNDED状态
线上开户不支持不支持三合一(开户+授权+入金)
发起方单向(FUTU发起)单向(FUTU发起)双向
代码语言PythonPythonGo

13家银行能力矩阵

银行BSTeDDAFPS网银入金份额
汇丰 HSBC-72%
天星 Airstar---
招行 CMB----
民生 MS----
恒生 HangSeng--
中银 BOCHK---
渣打 SCB---
广发 CGB----
工银 ICBC---12.3%

授权流程

Mandate 6状态机

NEW PendingAuthorise Authorised Active (OPEN)
RejectAuthorise Revoked

授权表单字段

字段来源编辑规则
银行固定:天星银行不可编辑
银行代码固定:008不可编辑
银行账户号码读取当前银行卡号预填充已授权eDDA→不可编辑;未授权→可编辑
账户姓名取账户英文名可选择姓名顺序
证件类型优先级:HKID → CNID → MOID如有多套证件可切换
证件号码从cert表预填充有证件信息时不可编辑
手机号预填充证券手机号仅可选+852/+86,可编辑

授权结果处理

同一ID多UID规则:只允许1个UID存在银证授权关系。银行发起授权时若识别到多个账户,需客户选择1个。

银行卡管理页状态

状态显示可操作
未授权银证 + 未授权eDDA仅显示银行卡信息可授权、可删除
银证授权中"授权处理中,约1-2个工作日通知"不可删除
银证已授权显示"已开通"标签可操作
银证授权失败显示失败原因,支持重新授权推送消息通知
银证+eDDA均已授权双标签全开可操作

对账

  • 每日0点拉取天星的授权列表
  • 任何状态 vs 银行返回"授权/未授权" → 按结果更新
  • 任何状态 vs "客户不存在/卡号不存在" → 按未授权处理

入金流程

入金体验参数

参数
线上开户最低入金HKD 10,000 / USD 1,500 / CNH 10,000
普通入金最低无最低要求(>0即可)
前端最大输入99,999,999,999(约千亿)
费用免费
通道限额无上限(限额由银行侧控制)

到账时效

场景到账时间
交易日 08:00-18:15,单笔 < 1000万5分钟
交易日 08:00-15:55,单笔 ≥ 1000万2小时内
其他时段下个交易日 08:10前

入金状态值

状态终态说明
new新建
pending处理中
success入金成功
failed入金失败(资金从未到账)
refunded已退款(天星独有,到账后被退回)

入金前置校验

校验项拦截文案
是否授权天星银证弹窗:未授权银证,请授权成功后发起入金
是否被风控限制弹窗:账户异常,无法发起入金
不动账户/休眠户弹窗:休眠户,不支持入金
第三方存款检测发现第三方存款退回至转出账户

15:55 分界点

结单规则:15:55前入金算当日结单,之后算下一个交易日。
计息规则:15:55前归还欠款当日停息。
入金切日:与综合账户切T时间对齐。

出金流程

核心原则

先扣钱,后转账。三步模式:冻结 → 转账 → 释放(防负余额)

出金前置校验

校验项拦截文案
是否授权天星银证未授权银证,请授权成功后发起
风控限制账户异常,无法发起出金
不动/休眠户休眠户,不支持出金
银行账户未认证银行账户还未通过认证
币种不匹配币种不匹配
Payoneer账户暂不支持出金至Payoneer账户
波多黎各地区暂不支持出金至高风险地区
账户穿仓账户存在欠款,无法发起出金
未完成GDCA未完成GDCA,不支持发起出金

出金通道优先级

BST银证(推荐) 网银/FPS 手动通道

BST仅占9%出金量,但运营成本最低(全自动)。同行转账占73%。

退款与冲正

REFUNDED 状态(天星独有)

REFUNDED ≠ FAILED
FAILED:银行拒绝,资金从未到账。
REFUNDED:已到账后被退回,需执行冲正操作。

触发场景

  • 银行反欺诈检测
  • 合规部门要求
  • 用户投诉
  • 系统错误

冲正流程

系统自动执行冲正。若用户已消费该资金导致余额不足,冲正失败需人工处理。

退款规则

类型FUTU发起银行发起
入金退款FUTU发起不接受
出金退款不发起接受

限额体系

出金三层限额

币种单笔上限累计报警每日熔断
HKD3,000,00040,000,00015,000,000
USD500,00010,000,0003,000,000
CNH无限制(天星独家优势)
熔断触发时自动关闭当日该币种自动出金,需次日恢复或人工处理。

入金限额

场景HKDUSDCNH
线上开户最低入金10,0001,50010,000
普通入金最低无限制(>0即可)
通道上限无限额(银行侧控制)
自动入金上限2,000,000300,0002,000,000

eDDA限额(天星)

维度限制
单笔HKD 200,000
日累计笔数5笔
日累计金额HKD 1,000,000

新卡审核触发阈值

币种阈值说明
HKD1,000,000超过触发额外审核(非限额)
USD150,000超过触发额外审核(非限额)
CNH1,000,000超过触发额外审核(非限额)

系统级BST上限

维度
全币种单笔上限10,000,000,000(系统保护)
每日最大笔数50笔
每日自动入金10笔/用户

处理时段

通道开始结束备注
天星BST08:3015:59比招行/民生提前10分钟
招行/民生BST08:4015:59
标准HKD处理07:00次日04:00
USD处理09:01-避免清算冲突
周末HKD-09:55
暂停窗口:08:55~09:00 和 16:05~16:10(系统对账期间暂停处理)

到账时效矩阵

时段金额到账
交易日 08:00-18:15< 1000万5分钟
交易日 08:00-15:55≥ 1000万2小时内
其他(非交易日/非服务时段)任意下个交易日08:10前

自动出金条件

AUTO_SETTING_ID = 3,需同时满足以下全部条件:

#条件说明
1Mandate状态 = OPEN授权必须激活
2账户正常非冻结/销户
3不在黑名单
4单笔不超限HKD≤300万 / USD≤50万
5每日不熔断当日累计未触发熔断线
6交易时段内08:30-15:59
7风险等级 ≤ Level 2天星侧风控通过
任一条件不满足则进入人工审批流程(confirm→remittance)。

风控等级

等级动作说明
Level 0-2APPROVE低风险,自动放行
Level 3MANUAL中风险,转人工审核
Level 4REJECT高风险,自动拒绝
特殊VERIFY需额外身份验证

风险等级是自动出金的前置条件,由天星银行侧风控系统判定。

通信协议

属性
协议类型HTTP REST API
数据格式JSON
加密方式RSA-OAEP(SHA1,200字节分块,Base64编码)
签名方式RSA/HMAC
密钥格式PKCS8
通信模式轮询(Polling)— 非推送
幂等性request_id(16-50字符)保证

银行侧接口清单(11个REST API)

分类接口路径
授权CreateAuth/authorization/apply
QueryAuth/authorization/status
CancelAuth/authorization/cancel
NotifyAuthResult/authorization/result
入金CreateTransfer/transfer/init (direction=deposit)
QueryTransfer/transfer/status (direction=deposit)
出金退款CreateWithdrawRefund/transfer/withdraw/reversal
QueryRefund/transfer/withdraw/reversal/status
账户QuerySecAccount/account/info
NotifyDepositApproval/transfer/approval

轮询机制

场景Job名称最大次数超时处理
入金创建结果AsbBstCreateResultJob60次人工确认银行状态
出金转账结果AsbBstTransfer10次进入兜底流程
出金兜底同步SyncAsbBstWithdraw2小时窗口人工处理
轮询超时 ≠ 交易失败,不可直接判定为失败,必须人工确认银行侧真实状态。

定时任务

任务频率职责
TransferCheck每分钟检查入金/出金是否超时,重新入队
DailyAuthCheck每小时检查授权任务是否卡住
BalanceQuery每小时查询银行账户余额
DailyTransferCheck每小时检查转账状态一致性

证件类型映射

当前支持(个人户)

证件Proto枚举发给银行的编码格式校验
香港身份证HKID (1)HKID^[A-Za-z]{1,2}\d{6}[0-9A]$ + 括号格式
内地身份证CNID (2)MCVID18位标准校验

待新增(扩展)

证件Proto枚举发给银行的编码格式校验
澳门身份证MOID (3)BIR(待确认)8位数字 或 含括号10字符
商业登记证 BR待定待定^\d{8}$
注册成立证书 CR待定待定^\d{7,8}$
海外公司注册号待定待定^[A-Za-z0-9\-/.]{1,30}$

统一证件枚举 (customer_enum.proto)

枚举值名称
22MacauPermanentID(澳门永久身份证)
23MacauID(澳门非永久身份证)
1006MacauTravelDocument(澳门旅行证件)
1013CompanyRegistrationCertificate(注册成立证书)
1042BusinessRegistrationCert(商业登记证)
1043OtherFormalRegistrationDoc(其他正式注册文件)

代码结构

关键文件位置

文件职责
proto/airstar_service.protoIDCardType枚举、请求响应定义、白名单校验
internal/app/enum/idtype/idtype.goCNID↔MCVID映射,ToBankIdType/ToFutuIdType
internal/app/validate/validate.goValidateCreateAuth()、ValidateCreateDeposit()
internal/app/utils/idcard/idcard.goHKID括号格式化
internal/app/apis/asb/adapter/bankreq/auth.go银行请求适配,双证件处理
internal/app/biz/asb_biz/auth.go授权业务逻辑,ToFutuIdType调用
proto/bank_req.proto银行协议定义,id_type1/id_type2
internal/app/enum/constant.goAsbBankID=55
doc/init-new.sqlDB schema,id_card_type varchar无需迁移
conf/conf.toml银行账号、代理、队列、定时任务配置

天星银行账号(SIT环境)

币种银行账号
HKD860000001150
CNH867000001179
USD861000001180

机构客户银证(进行中)

进度:约60%完成,等待天星银行产品反馈授权校验字段。
预期上线:待天星反馈后完成剩余授权模块。

核心差异(vs 个人版)

维度个人版机构版
证件类型HKID / CNID商业登记证(BR) / 公司注册证(CI)
同名校验个人姓名匹配企业名称匹配(中英文/繁简体容错)
授权状态5种6种(新增"企业审批中")
CRM现有tab新增"企业审批中"子tab

已完成交付物

  • PRD文档 V2(飞书 150 blocks)
  • APP原型(12个交互页面)
  • CRM原型(v2重写中)

澳门访港客户银证(PRD审查中)

目标上线:2026年7月初
当前状态:PRD v1.0已输出,两轮审查后仍有3个高优阻塞项

关键改动

  1. Proto新增 MOID=3,白名单扩展为 {HKID, CNID, MOID}
  2. idtype.go 加 MOID常量,ToBankIdType映射 MOID→BIR
  3. validate.go 加澳门身份证校验(8位纯数字 或 含括号10字符)
  4. 手机号支持 +853 前缀

高优阻塞项(🔴)

#问题状态
P1BIR类型银行侧未确认阻塞 5月中旬前必须锁定
P2"复用eDDA校验"约等于没有校验(仅长度≤10)需明确正则
P3bank_req.proto双证件id_type1/id_type2逻辑未说明需确认

证件预填充规则(6种组合)

富途开户证件预填
内地身份证 + 澳门非永久ID内地身份证
内地护照&澳门签证 + 澳门非永久ID澳门身份证
香港永久ID + 澳门非永久ID香港身份证
澳门永久ID + 香港非永久ID香港身份证
澳门永久ID(单证件)澳门身份证
澳门非永久ID(单证件)澳门身份证

CRM操作

入口

银行账户 → 银行账户授权 → 天星香港银证转账

Tab结构

Tab子Tab
开通银证处理中客户姓名/牛牛号/银行名称/银行账号/授权协议号/银行证件资料/当前耗时/发起时间
已开通+ 完成时间 + 处理结果
开通失败+ 完成时间 + 处理结果(红色)
关闭银证-客户姓名/牛牛号/银行名称/银行账号/授权协议号/总耗时/发起时间/完成时间

复用策略

复用招商银证现有任务流,新增字段"授权协议号"(仅授权成功时天星返回)。

异常处理

授权异常(5类)

异常处理
授权停在PROCESSING等待银行审核(1-2个工作日)
授权FAIL(姓名/证件不匹配)核实信息后重新授权
授权CANCEL(用户主动)正常流程
部分市场映射失败人工排查
CancelAuth失败联系天星技术支持

入金异常(7类)

异常严重程度处理
创建失败查fail_code
轮询60次超时人工确认银行状态
入金失败查fail_code和fail_reason
入金退款(REFUNDED)严重立即冲正
冲正余额不足严重人工处理
银行端入金未同步等SyncJob拉取
重复入金幂等性保护(request_id)

出金异常(5类)

异常严重程度处理
出金指令失败释放冻结,通知用户
10次轮询超时进入2h兜底
2h兜底超时严重人工确认银行状态
冻结未释放严重手动释放
银行端出金未同步SyncAsbBstWithdraw处理

常见客诉 Top 3

  1. "余额不足无法入金" → 核实天星银行账户余额
  2. "授权一直处理中" → 银行审核通常1-2个工作日
  3. "入金成功后资金被退回" → REFUNDED状态,解释银行合规原因

监控告警

最严重的4项告警

告警级别处理
入金退款(REFUNDED)严重立即冲正
出金兜底超时严重人工确认银行状态
冻结未释放严重手动释放
API连通性异常严重联系天星技术支持

错误码映射

错误码含义对客文案
140630003超出银证转账额度超出银行银证转账的额度,请联系银行调整限额
140630004单笔超银行限额单笔转账金额超过银行限额,请联系银行调整限额
140630005余额不足银行账户余额不足
140630006金额有误转账金额有误,请重新输入
140630007卡号错误银行账户号码错误,请联系在线客服了解详情
140630008姓名不一致账户姓名与银行登记的信息不一致
140670010新卡入金不足在线开户用户新绑卡,入金金额不能低于10000 HKD
140670011新卡出金条件在线开户用户新绑卡,尚未入金超过10000 HKD

数据来源:hk-funds-docs.pages.dev · airstar_service代码库 · 互信二期PRD · 项目审查记录

生成时间:2026-04-30 · 基于 Claude Opus 4.6