Skip to content

星展 DBS

本页说明

讲什么:星展银行的 API 流水采集、子账户优先匹配模式、SubAccountSDK 集成的完整业务规则 适合谁:需要了解星展对接细节的产品经理 前置阅读银行能力矩阵预计阅读:4 分钟 负责人:入金产品经理

核心要点:星展的核心特点是子账户优先匹配——每个用户有独立的 DBS 子账户,入金先按子账户精确匹配再走通用逻辑。


能力总览

能力支持情况协议/通道核心服务
入金流水采集API 定时拉取标准 BankFlow 采集
子账户入金SubAccountSDKDbsMatch 子账户匹配
出金
eDDA/eDDI
FPS
银证 BST

星展是子账户匹配模式的典型代表——匹配逻辑围绕子账户归属展开,用户必须有子账户历史记录才能匹配。HKD 自动入账容差高达 -350,是所有银行中最宽的自动入账容差。


渠道接口概览

维度说明
ProtocolAPI
数据采集定时拉取
子账户管理SubAccountSDK
IMPORT_BANK_ID16 (DBS)
TransType208
匹配引擎DbsMatch

入金:API 流水采集

采集方式

星展通过标准 API 接口提供流水数据,系统定时拉取后写入统一的 BankFlow 格式。

数据流

API 接口字段

星展的流水数据基于通用 BankFlow 格式,包含以下关键字段:

字段说明用途
transaction_id交易唯一标识去重唯一键
transaction_date交易日期日期窗口匹配
value_date起息日辅助日期参考
currency币种币种匹配条件
amount交易金额金额容差匹配
payer_name付款人姓名姓名精确匹配
payer_account付款人银行账号子账户匹配核心字段
beneficiary_account收款账号moomoo 收款账户标识
transaction_type交易类型区分转入/转出
remarks交易备注补充信息

关键字段

payer_account(付款人银行账号)是 DBS 匹配的核心字段——系统用它去 SubAccountSDK 查询是否属于某个用户的已分配子账户。


匹配规则 (DbsMatch)

核心特征:子账户优先匹配

星展采用子账户优先匹配模式——与其他银行先看金额/姓名不同,星展首先检查流水账号是否在用户的子账户列表中。只有子账户检查通过,才进入后续的金额和姓名匹配。

维度规则说明
自动入账已启用子账户+金额+姓名全部通过时自动入账
前置条件子账户历史检查必须通过 SubAccountSDK 验证
币种匹配必须一致流水币种 = 申请币种
姓名匹配英文精确匹配自动入账条件之一
日期窗口-3 ~ +2 天 (daySimilar)标准日期规则

金额容差

场景HKD 容差USD 容差
自动入账CRM - 350 ≤ 流水 ≤ CRMCRM - 50 ≤ 流水 ≤ CRM

CRM-350 HKD 是所有银行中最宽的自动入账容差

为什么这么大? 星展的子账户入金通常涉及跨行转账,中间可能经过多个中转行,每个中转行可能收取手续费。由于子账户本身已经证明了资金归属(只有持有该子账户的用户才能转入),系统可以放心使用更大的容差来覆盖不确定的手续费。

SubAccountSDK 子账户体系

SubAccountSDK 是子账户管理的核心组件,负责维护用户与子账户的映射关系:

功能说明
子账户分配为每个用户分配唯一的 DBS 子账户号
归属查询根据银行账号反查所属用户
历史记录维护用户的子账户使用历史
跨银行支持同一 SDK 同时服务 DBS、SCB 等子账户银行

子账户匹配的核心逻辑

完整匹配逻辑

条件组合匹配结果说明
币种匹配 + 子账户历史存在 + 姓名精确 + 金额在容差内自动入账 (Deposit Match)最理想情况,系统自动完成入账
币种匹配 + 子账户历史存在普通匹配子账户本身证明资金归属
币种匹配 + 子账户历史不存在不匹配无法确认资金归属
币种不匹配不匹配基础条件不满足

为什么子账户存在就能返回普通匹配? 子账户是分配给特定用户的唯一账号。如果流水的付款账号在某用户的子账户列表中,即使金额或姓名不完全匹配(可能因手续费扣减或姓名格式差异),也可以合理推断这笔钱属于该用户。运营人员只需做最终确认。

匹配条件详解

条件检查方法自动入账普通匹配
币种直接比较✅ 必须✅ 必须
子账户归属SubAccountSDK 查询✅ 必须✅ 必须
姓名英文精确匹配✅ 必须❌ 不要求
金额amountSimilarForAuto✅ 必须❌ 不要求
日期daySimilar (-3~+2)✅ 必须❌ 不要求

定时任务

任务频率说明
流水采集定时拉取从星展 API 获取最新流水
match:dbs每 3 分钟执行星展流水匹配

与其他子账户银行对比

星展不是唯一支持子账户的银行,以下是子账户银行的横向对比:

维度星展 DBSEWB 子账户渣打 SCB
bank_id1638
匹配引擎DbsMatchEwbSubAccountMatch
子账户 SDK✅ SubAccountSDK❌ 独立逻辑✅ SubAccountSDK
自动入账
HKD 自动入账容差-350-40
USD 自动入账容差-50❌ 不支持
子账户检查前置条件隐含在匹配中前置条件
无子账户时不匹配不匹配

DBS 容差为什么远大于 EWB 子账户? EWB 子账户以本地 HKD 转账为主,手续费低;DBS 子账户涉及更多跨行转账场景,中转费用不确定性更高。


子账户入金全流程

从用户视角看,DBS 子账户入金的完整流程如下:


需求变更指引

变更需求改动位置说明
修改自动入账容差DbsMatch.phpamountSimilarForAuto()调整 HKD -350 / USD -50 阈值
修改子账户匹配逻辑DbsMatch.php → SubAccountSDK 调用调整子账户归属验证规则
新增子账户来源SubAccountSDK 配置添加新的子账户分配渠道
启用辅助姓名匹配DbsMatch.php → 改为 nameSimilar()从精确匹配改为相似匹配
修改日期窗口DbsMatch.phpdaySimilar()调整 -3~+2 天范围
新增支持币种DbsMatch.php → 币种判断 + 容差配置添加新币种的匹配规则
修改匹配频率deposit/doc/crontab.shmatch:dbs调整 cron 间隔
子账户分配策略变更SubAccountSDK → 分配逻辑修改子账户号的生成/分配规则

监控与告警

告警项触发条件严重度处理步骤
子账户 API 连接超时SubAccountSDK 请求超时🟡 中检查网络连通性,确认星展 API 是否正常
流水采集延迟API 返回数据滞后🟡 中确认查询时间范围,必要时手动补采
子账户不匹配流水账号与系统记录不一致🔴 高核实子账户映射关系,手动修正

SubAccountSDK 接口详情

流水查询接口

字段类型必填描述
sub_account_idstring星展子账户 ID
start_datestring查询起始日期。格式 YYYY-MM-DD
end_datestring查询结束日期。格式 YYYY-MM-DD
currencystring币种过滤。取值 HKD / USD

流水响应字段

字段类型描述
transaction_idstring交易唯一 ID
transaction_datedatetime交易日期时间
amountdecimal交易金额
currencystring币种
balance_afterdecimal交易后余额
payer_namestring付款人姓名
payer_accountstring付款人账号
referencestring交易参考号

自动入账 vs 普通匹配

星展的匹配规则区分两种模式:

维度自动入账普通匹配
金额容差 (HKD)-350-420
金额容差 (USD)-50-60
日期窗口-3~+2 天-3~+2 天
子账户校验✅ 必须校验历史❌ 不校验
人工确认不需要需要
适用场景小额常规入金大额或首次入金

子账户历史校验

自动入账要求该子账户历史上至少有一笔成功入金记录。新开子账户的首笔入金不会自动入账,需要运营人工匹配确认。


读完之后

我想...去看
看星展在各银行中的位置银行能力矩阵
了解匹配引擎的完整逻辑匹配与自动入账
看另一家子账户银行(EWB)EWB
对比渣打的子账户入金渣打 SCB
查 TransType 和 Bank ID 对照入金规则速查
这个页面有帮助吗?

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