摘要
本文详细介绍了支付域中的账户系统设计,包括账户的定义、核心特征、常见类型以及在支付系统中的作用。账户是支付平台为用户、商户等主体建立的资金记录单元,具有资金归属、余额管理、交易流水、资金安全等核心特征。常见账户类型包括用户账户、商户账户、平台账户、保证金账户等。此外,还探讨了账户与银行账户的区别、账户的结构设计、如何设计账户类型以及账户系统设计等内容。

1. 什么是账户
你可以把它理解成------在支付系统内部,账户就是用户(或机构)在平台上的"虚拟钱包"或"资金台账",它记录了每笔资金的来源、去向、余额变动、冻结解冻等信息。
1.1. 支付域中账户的核心定义
账户 :支付平台为用户、商户、平台自身等主体建立的资金记录单元,用于追踪资金变动、控制资金可用性,并作为交易清算的基础依据。账户的本质是资金的逻辑归属单位,并不等同于银行账户。它可以是:
- 平台内的虚拟账户(用户账户、商户账户、保证金账户等)
- 银行托管账户的映射(直连银行的场景)
- 内部核算账户(比如手续费收入账户、风险保证金账户)
1.2. 账户核心特征
|-----------|----------------------------|
| 特征 | 描述 |
| 资金归属 | 每个账户绑定一个唯一的资金所有者(个人、企业、平台) |
| 余额管理 | 记录账户可用余额、冻结余额、总余额 |
| 交易流水 | 所有交易变动必须产生流水记录,保证可追溯 |
| 资金安全 | 支持风控、限额、冻结、解冻等操作 |
| 多币种支持 | 支持人民币、美元等多种货币单位(如跨境支付) |
| 多维度分类 | 按业务分类(保证金账户、结算账户、手续费账户等) |
1.3. 常见账户类型(支付域)
|-----------|-----------------|---------------|
| 类型 | 描述 | 场景示例 |
| 用户账户 | 记录用户的充值、消费、提现资金 | 支付宝余额、微信零钱 |
| 商户账户 | 记录商户收款、结算资金 | 商户收单后的待结算资金 |
| 平台账户 | 平台自有资金核算 | 手续费收入、补贴支出 |
| 保证金账户 | 风险担保金、押金 | P2P平台保证金、押金业务 |
| 清算账户 | 用于资金清算调拨 | 银企直连清算账户 |
| 冻结账户 | 存放被冻结的资金 | 司法冻结、风控冻结 |
1.4. 在支付系统中的作用
- **资金记录:**所有充值、支付、退款、提现等交易,最终都反映为账户余额的变化。
- **资金控制:**通过账户控制资金的可用性(冻结、解冻、限额)。
- **清结算依据:**银行清算、对账、核销,都依赖账户余额与流水的准确性。
- **风险隔离:**不同用户、商户的资金通过账户隔离,避免混账。
1.5. 账户vs银行账户
|----------|-------------|-----------|
| 对比项 | 平台账户(虚拟账户) | 银行账户 |
| 存在形式 | 系统内逻辑记录 | 银行系统 |
| 控制方 | 支付平台 | 银行 |
| 资金归属 | 由平台映射和管理 | 银行实际托管 |
| 用途 | 核算资金变动、交易控制 | 实际资金收付、清算 |
| 开设速度 | 系统内快速创建 | 银行开户流程复杂 |
2. 账户的种类
在支付域(尤其是金融支付和清结算系统)中,账户 是资金流转、余额管理和交易结算的核心实体。它是资金在系统中的载体 ,用于记录余额、交易流水、冻结状态等信息 。在支付域 中,它还承载监管、安全、资金流转规则、财务对账等职责。

|------------------------------|-----------------------|-----------------|-----------------------|
| 账户类型 | 主要作用 | 使用场景 | 备注 |
| 客户账户(Customer Account) | 记录客户的资金余额、交易记录 | 用户充值、消费、提现 | 一般对应实名用户或商户 |
| 商户账户(Merchant Account) | 管理商户交易资金、结算金额 | 电商平台商户收款、结算 | 可分为交易账户 与结算账户 |
| 备付金账户(Reserve Account) | 支付机构在银行开立,用于备付金管理 | 第三方支付公司在银行的存管账户 | 受监管,不能挪用 |
| 清算账户(Clearing Account) | 用于清算机构内部资金过渡 | 网联、银联清算、跨机构结算 | 通常是机构之间的资金交互中间账户 |
| 结算账户(Settlement Account) | 交易完成后将资金结算至商户/用户的最终账户 | 商户结算周期到账户 | 不一定与交易账户相同 |
| 资金池账户(Pool Account) | 集中管理多个子账户资金,提高流动性 | 平台内部调拨、企业资金集中管理 | 常用于集团公司财务 |
| 虚拟账户(Virtual Account) | 为每个用户/商户分配的虚拟标识账户 | 银企直连、分账管理 | 实际资金在一个总账户中 |
| 保证金账户(Margin Account) | 存放保证金,防控风险 | 融资融券、预授权支付 | 资金可能冻结 |
| 预付账户(Prepaid Account) | 存放预充值资金 | 游戏充值、会员卡储值 | 一般不可提现 |
| 冻结账户(Frozen Account) | 记录被冻结的资金 | 订单争议、风控冻结 | 与原账户挂钩,冻结部分资金 |
2.1. 不同账户的作用总结
- 资金承载:记录用户、商户、平台等资金变化(余额、冻结、解冻)。
- 交易追溯:通过账户流水追踪交易历史,满足审计和监管。
- 风险控制:通过冻结、限额、分账等手段防控资金风险。
- 清结算支持:完成跨机构、跨平台、跨币种的资金划拨与对账。
2.2. 使用场景
- 用户充值:备付金账户入账 → 基本账户余额增加
- 付款:可用账户扣减,冻结账户释放/转移
- 担保交易:冻结账户锁定资金,交易完成后解冻
- 营销活动:从营销账户扣减,抵扣交易金额
- 跨境支付:多币种账户内部汇率结算
- 结算清分:待结算账户在T+N日转入商户银行账户
2.3. 支付域常见账户设计模式
总账户 + 子账户
- 总账户实际持有资金
- 子账户(虚拟账户)按客户/交易类型做账
- 场景:银行虚拟子账户、平台分账管理
交易账户与结算账户分离
- 交易账户用于实时交易记录和余额控制
- 结算账户用于周期性清算结算
- 场景:电商平台商户 T+1/T+7 结算
3. 账户的结构

账户主体:这个账户是谁的,个人的?企业的?内部业务线的?
账户结构树:就像会计科目,就像商品类目,由于账户可能种类繁多所以有时也需要一个结构树,比如:

账户类型:账户的分类,比如个人账户/对公账户,结算账户/付款账户,收款账户/打款账户。
账户名称:钱多少不重要,名字一定要有气质:陈老师全球通国际清算私房钱账户。
账户余额:账户余额一般为了业务需要,会设计多个金额属性,比如冻结金额,可用金额,可提金额。

账户流水:账户的资金变动记录,记录对手账户,收支方向,金额,费用类型等基本信息。

账户服务:
- 开通/关闭
- 权限设置
- 入账
- 扣账
- 调账
- 冻结/解冻
- 余额查询
- 流水查询
- 账户底线原则
支付成功才入账,扣账成功才出款,一分不少真安全。
3.1. 账户服务解冻和冻结
3.1.1. 冻结功能
冻结账户或账户内部分资金,使得被冻结部分无法被支付、提现、转账使用,但通常仍能查询。
常见类型:
- 账户冻结:整个账户不可动用。例如涉嫌欺诈或司法要求。
- 资金冻结(部分冻结):只冻结账户里的一部分金额,其他余额仍可使用。
- 交易冻结:只禁止特定类型的交易(如提现、转账),但充值或收款不受影响。
使用场景:
- 用户账号涉嫌盗刷,临时冻结防止资金被转走。
- 商户涉及违规操作,监管要求冻结账户资金。
- 用户发起支付,但收单/清结算尚未完成,系统临时冻结对应金额(保障支付链路资金安全)。
3.1.2. 解冻功能
将被冻结的账户或资金恢复可用状态,解除风险限制。
触发场景:
- 风控复核后确认交易正常,解冻账户。
- 支付订单完成或撤销,释放之前冻结的保证金或订单金额。
- 司法冻结到期或法院下发解冻指令。
3.1.3. 作用总结
- 资金安全:冻结能防止盗刷和异常转账。
- 合规要求:满足司法冻结、反洗钱、监管合规。
- 业务保障:交易链路中保证资金不被随意挪用,例如电商订单的预授权冻结。
3.2. 账户系统解冻和冻结设计
冻结 / 解冻的本质是:
- 冻结 ≠ 扣钱,只是限制资金的可用性。
- 需要对账户余额拆分管理,典型是 总余额 = 可用余额 + 冻结余额。
- 解冻就是把冻结余额释放回可用余额,或在满足条件后转为实扣(消费)。
3.2.1. 数据模型设计
3.2.1.1. 账户表
account(
account_id,
total_balance, -- 总余额
available_balance, -- 可用余额
frozen_balance, -- 冻结余额
status, -- 账户状态: 正常/冻结/销户
...
)
3.2.1.2. 冻结明细表
用于记录每一笔冻结的来源和状态,方便解冻/追溯:
freeze_record(
freeze_id,
account_id,
freeze_amount,
freeze_type, -- 冻结类型:司法冻结/风控冻结/订单冻结
status, -- 状态:冻结中/已解冻/已扣减
biz_order_id, -- 关联的业务单号(支付单、司法单)
expire_time, -- 冻结到期时间(可选)
create_time,
update_time
)
3.2.2. 冻结逻辑
- 入参:账户号、冻结金额、冻结原因、业务单号
- 处理步骤:
-
- 校验账户状态(不能是销户/锁定)。
- 校验可用余额 ≥ 冻结金额。
- 生成冻结明细记录。
- 更新账户余额:
available_balance -= 冻结金额
frozen_balance += 冻结金额 -
- 记录账户流水(保证账务可追溯)。
3.2.3. 解冻逻辑
解冻分两种情况:
-
释放解冻:直接把冻结余额还给可用余额。
frozen_balance -= 解冻金额
available_balance += 解冻金额 -
消费解冻(例如电商订单支付成功):
frozen_balance -= 解冻金额
total_balance -= 解冻金额 (真正扣钱)
- 这里不再加回可用余额,而是直接减少总余额。
- 同时写账务流水,作为资金最终出账记录。
3.2.4. 账户冻结(非金额冻结)
除了资金冻结,还有一种 账户级冻结:
- 在
account.status
标记为冻结。 - 账户所有出金交易都不允许,只能查余额。
- 典型场景:司法冻结、风控强制冻结。
3.2.5. 技术实现要点
- 并发控制:冻结/解冻涉及账户余额更新,要么用悲观锁(for update),要么用乐观锁(version 字段)。
- 幂等处理:冻结和解冻请求必须有业务单号,防止重复操作。
- 账务流水:所有冻结/解冻/扣款操作必须落账,保证可审计。
- 过期解冻:对有时间限制的冻结(如预授权),需要定时任务/事件触发自动解冻。
3.2.6. 典型场景举例
- 电商支付预授权:先冻结用户资金,待商家发货后解冻并消费。
- 风控冻结:用户涉嫌盗刷,冻结部分资金,后续人工审核决定解冻/扣划。
- 司法冻结:法院要求冻结用户全部资金,解冻需法院通知。
4. 如何设计账户类型
在支付域中,账户类型设计是核心工作,因为账户是资金流转、余额管理和风控控制的载体。合理的账户体系,既能支持多种业务场景(支付、清结算、分账、保证金等),又能保证资金清晰、可追溯。
4.1. 账户类型设计
- 一账多用:一个用户可能有多个账户,分别承载不同的资金属性(如可用余额、冻结资金、保证金)。
- 账户分层 :底层是总账/资金账户 (资金来源真实承载),上层是子账户/业务账户(映射业务维度)。
- 可扩展性:支持新增账户类型(例如以后支持数字货币账户、积分账户)。
- 强一致性:所有资金变动必须可追溯,满足会计分录借贷平衡。
4.2. 常见账户类型
4.2.1. 按资金属性划分
- 可用账户:存放用户真实可支配资金,用于支付、提现。
- 冻结账户:存放冻结资金,因订单锁定、司法冻结等。
- 在途账户:存放未清算完成的资金,例如支付过程中待结算资金。
- 保证金账户:存放担保资金,如商户入驻平台时缴纳的保证金。
4.2.2. 按账户主体划分
- 用户账户:用户个人资金账户。
- 商户账户:商家收款资金,支持清结算、分账、提现。
- 平台账户:平台的自有资金账户,用于手续费收入、补贴、活动奖励。
- 监管/备付金账户:存放在银行/三方支付备付金账户,满足合规要求。
4.2.3. 按账务层级划分
- 总账户(Ledger Account):统一记账(如某个用户在系统的总账余额)。
- 子账户(Sub-Account):按场景细分(保证金子账户、积分子账户)。
4.3. 账户设计要点
- 账户唯一标识:
-
account_id
唯一标识账户。- 与
user_id
、merchant_id
绑定。
- 账户余额字段(核心设计):
-
available_balance
(可用余额)frozen_balance
(冻结余额)total_balance
(总余额 = 可用 + 冻结)pending_balance
(在途资金)
- 账户状态:
-
ACTIVE
(正常)、FROZEN
(冻结)、CLOSED
(销户)、PENDING
(待激活)。
- 资金流转规则:
-
- 所有变动必须记录交易流水(Transaction Journal)。
- 保证借贷平衡(如用户扣款+平台增加 = 总账平衡)。
- 扩展性:
-
- 通过账户类型枚举 + 子账户维度,支持扩展。
4.4. 示例账户模型
4.4.1. 账户表(Account)
|-------------------|-------------------------------------|
| 字段 | 含义 |
| account_id | 账户唯一标识 |
| owner_id | 所属用户/商户 ID |
| account_type | 账户类型(USER、MERCHANT、PLATFORM、ESCROW) |
| available_balance | 可用余额 |
| frozen_balance | 冻结余额 |
| pending_balance | 在途余额 |
| currency | 币种 |
| status | 状态(ACTIVE/FROZEN/CLOSED) |
| created_time | 创建时间 |
| updated_time | 更新时间 |
4.5. 使用场景示例
- 电商支付:
-
- 用户账户 → 扣减可用余额;
- 商户账户 → 增加在途资金,待确认收货后转为可用余额。
- 保证金管理:
-
- 商户保证金账户 → 存放不可提现资金;
- 平台可对保证金做部分冻结(例如因违规扣款)。
- 风控冻结:
-
- 用户账户 → 冻结部分资金,防止盗刷;
- 司法解冻后 → 资金回归可用账户。
4.6. 账户的附属设施
有了电池是不是还需要充电线,有了油罐是不是还得有加油设备,安全设备;同样有了账户是不是还得有附属模块才能实现账户的资金管理职能。
费用类型:每笔交易都有业务场景,比如下单付款,投诉罚款,用户充值,余额提现,账户年费等等,一个是为了让用户知道这是笔什么交易,另一个就是财务能够知道编写什么科目的会计凭证。

入账规则:上游有业务系统比如账务系统请求一笔费用的入账,那么如那个账户呢,收支方向如何呢?所以入账规则就是来确定这笔入账怎么入的问题,规则主要有2部分组成。


冻结规则:有些费用入账后是需要暂时冻结的,比如用户领的活动奖金,必须在冻结7个工作日之后才能解冻;某业务线的商家结算收入,统一在次月15号可提走,所以一条入账规则需要关联一个冻结规则。


费用/入账规则/冻结规则关系:一个费用入账时,可能记一笔账,也可能记多笔;比如商户佣金费用,则会入两笔账:成本账户入一笔扣款,商家佣金账户入一笔收入;而扣款不用冻结,收入需要冻结7天。

对外服务:任何系统都不是孤岛,账户系统同样,要将能力赋能给上游实现自己的价值;账户向外提供的服务基础的应该包含:开户,注销,查询(余额,流水,状态),交易(支付,退款,充值,提现,冻结)等。

账户管理后台:账户系统需要提供一个业务后台给到相关的运营人员,财务等角色;后台可以查看所有的账户以及账户的状态,所属主体以及余额情况,还可以操作账户进行注销。
还需要能够查看所有的出入账流水,配置相关费用,配置入账规则和冻结规则。

5. 账户系统设计
账户系统功能架构:

账户系统业务架构:

6. 账户入账流程图

7. 账户的应用
7.1. 资金存管与结算
- 用户资金账户:记录用户的余额,支持充值、提现、消费。
- 商户资金账户:管理商户收款、结算、退款等交易。
- 平台清算账户:作为交易撮合中间账户,用于临时资金过渡、对账。
📌 应用场景:余额支付、提现到银行卡、商户结算、平台分账。
7.2. 风险与合规管理
- 冻结与解冻:在发现风险交易(欺诈、套现、风控预警)时冻结账户,防止资金流出。
- 限额控制:通过账户维度控制用户每日/每月支付、提现、转账额度。
- 黑白名单:账户可以与风控系统联动,标记高风险账户。
📌 应用场景:支付风控、反洗钱(AML)、交易合规审查。
7.3. 产品与业务功能支撑
- 分账账户:支持平台型业务(如电商、出行),将资金按比例分配给多个商户。
- 保证金账户:存放商户或用户保证金,用于担保、押金等场景。
- 积分账户:承载非货币化资产,如积分、优惠券余额。
📌 应用场景:共享单车押金、交易保证金、积分兑换、红包。
7.4. 运营与营销
- 营销账户:存放平台的补贴资金,用于发放优惠券、红包、返现。
- 预付费账户:比如充值卡、储值卡,提前锁定资金,提升用户粘性。
📌 应用场景:满减优惠、现金红包、会员充值卡。
7.5. 对账与清算
- 内部账务核算:每笔资金交易都通过账户体系入账,保证账务平衡。
- 外部对账:与银行、清算机构、第三方支付通道进行对账,避免资金差错。
📌 应用场景:日终对账、差异调账、跨机构清算。
账户除了管钱之外还可以在此之上构建一些应用产品,比如下面这两个:
- 钱包:像微信钱包,就是用户的一个虚拟账户,在钱包里可以看到余额,可以充值余额,也可以将余额里的钱提现到银行卡;
- 余额支付:账户可以作为一种支付方式,包装出一个支付通道,利用平台自己的账户进行平台商品的购买支付,当然这个要考虑合规性。
8. 账户合规要求
在支付域里,账户合规 是非常核心的主题,因为账户直接承载用户的资金、交易、清结算以及监管数据。合规设计主要涉及 资金安全、反洗钱、监管要求、风控合规 等方面。整理如下:
8.1. 账户合规的核心要求
- 实名制合规
-
- 要求账户与真实用户身份绑定。
- 需要对接公安部、银行等权威数据源进行实名认证。
- 分级管理:不同实名认证等级对应不同账户权限与限额。
- 资金合规
-
- 所有资金必须全额备付,避免挪用。
- 要求做到资金清晰隔离:客户资金、机构自有资金、清算资金不能混用。
- 资金流转需可追溯,满足审计与监管检查。
- 交易合规
-
- 账户内所有出入账交易都需完整记录,保证不可篡改、可追溯。
- 满足《支付结算办法》《反洗钱法》《清算管理条例》等要求。
- 支持实时监测异常交易(大额、频繁、跨境敏感交易)。
- 反洗钱合规 (AML/KYC)
-
- 建立 KYC(了解客户)体系,收集并验证客户身份信息。
- 建立交易监测系统,对大额、可疑交易进行标记并报送监管。
- 保留客户交易记录不少于 5 年。
- 监管合规
-
- 按照监管要求报送交易流水、资金余额、账户状态。
- 资金需进入监管账户(如备付金交存人民银行)。
- 符合银保监会、央行对支付机构的管理办法。
8.2. 账户合规的设计要点
- 账户分级设计
-
- 一级账户(实名制强认证):资金无限额,可用于全量交易。
- 二级账户(弱认证):限额使用,用于便捷支付场景。
- 匿名账户:限额极低,只能用于体验或小额支付。
- 账户审计与风控
-
- 所有账户操作(开户、充值、提现、转账、冻结、解冻等)都需记录审计日志。
- 日志必须不可篡改(如区块链或专用审计库)。
- 接入实时风控系统,对异常行为自动冻结或限制。
- 资金隔离
-
- 在系统层面明确区分:
-
-
- 用户资金账户
- 商户备付账户
- 清结算账户
- 平台自有账户
-
-
- 严格控制跨账户操作权限,避免资金混用。
- 合规接口与报送
-
- 系统需具备自动生成合规报表、对接监管报送系统(如大额可疑交易报送系统)。
- 确保合规数据完整、准确、及时。
8.3. 账户合规的应用场景
- 用户开户/绑卡:必须实名制校验,通过合规模块验证身份。
- 资金进出:必须经过反洗钱系统校验,避免黑灰产洗钱。
- 商户结算:资金进入监管账户,再按规则划拨,保证资金安全。
- 跨境支付:需符合外汇管理、跨境资金监控等要求。
- 风控处理:异常账户实时冻结,保障合规。
博文参考
- 《账户系统设计》
- 《支付域》