支付系统中,账户体系的设计与记账处理

账户体系和会计的设计是整个支付系统的底层基础,是支付系统在基础支付服务的基础上,为个人用户及企业商户提供的对于资金收、付、管的服务。本文所说的账户体系定义所有的操作均以交易的形式发生,但从金融核心系统的发展来看,将由以交易驱动转变为以用户为中心的按照产品进行管理的账户体系。

一. 交易模型

前文说道,本文所说的账户体系定义所有的操作均以交易的形式发生,即账户的变动均基于交易而发生。对于账户的处理,需要依据业务,结合相应的产品体系,建立交易模型。

如下:

  • 产品:如B2C网银、B2B网银、快捷支付、代收代付、身份验证、账户验证。
  • 交易类型:在产品的基础上,拆分出来的粒度更小的交易,如B2C网银支付可以拆分为收单、结算。
  • 账户体系:基于交易发生的账户变动,如C1用户转账至C2用户。
  • 会计分录:根据不同的交易类型对于会计科目进行设置,每笔交易会形成相应的会计分录,用于记账。一般需支持一借一贷和一借多贷,即每笔交易都会至少生成一组会计分录。

下面以B2C网银收单为例说明:

假设条件:

  1. 用户使用中国银行深圳分行B2C网银向企业商户下单购买商品。
  2. 支付公司结算至企业商户余额户。

二. 账户体系

账户按照所有权可以区分为个人账户、企业账户、内部账户。个人账户是面向个人用户开设的电子账户,如余额户记录用户在支付平台的余额,企业账户是面向商户开设的账户,如待清算户,基本户。内部账户是支付公司为自身业务开展的需求而为自己设立的账户,如备付金账户、长款户、短款户。除此之外,支付系统还可以根据业务需要设置各种不同的账户类型。

所有的账户都记录着两方面的信息

(1)账户的基本信息

  • 账户号
  • 账户类型
  • 余额
  • 币种
  • 账户状态
  • 开户时间

除此之外还可以设置对账户的权限进行控制,如:

  • 是否允许充值
  • 是否允许提现
  • 是否允许余额为负

(2)账户的流水信息

包括开户以来的所有账户变动变动信息,何时存入资金,何时取出资金,何时发生账户金额冻结等。

账务流水

账务流水包括一个账户所有状态变化的过程信息。账户管理系统对外提供了开户,记账、账户信息变更、账户信息查询等一系列接口服务。

如下表:

账户用例(仅记录商户侧)

(1)开户

商户A是一家电商平台,接入支付系统快捷支付,支持借记卡和贷记卡;对于手续费征收,经协商,采取收支两线,并预存手续费10000元,交易手续费费率为1%;同时因为该商户资质较好,交易时采取D0实时结算。

商户开户,根据商户交易特点,需开通以下账户:

  • 待结算户:用户在商户交易完成后,资金进入该账户。
  • 基本户:商户的余额户,可体现,交易结算后,资金进入该账户。
  • 手续费户:专门用来存放手续费的账户。

开户后各账户余额如下:

(2)收单交易

某用户上午9点在A电商平台上使用快捷支付购买1000元的手机,交易完成后,A商户待结算户增加1000元

手续费按照1%标准征收,由商户支出,故该笔交易手续费为:1000*1%=10元,计入手续费户,手续费剩9990元。

支付公司设置D0结算时间节点为每天下午4点。下午4点后,待结算户资金结转至基本户。

账户变动如下:

(3)提现

A商户在下午4:30时,发起提现600元,商户提现手续费按笔征收,每笔2元。

商户提现600后,基本户剩400元,同时每笔需付出手续费2元,手续费户剩余9988元。

账户变动如下:

三. 会计核算体系

按会计科目所反应经济内容的不同一般可分为资产类科目、负债类科目、资产负债共同类科目、所有者权益类科目、损益类科目。

资产类科目余额方向在借方,负债类科目余额方向在贷方,资产负债共同类科目根据实际情况可借方可贷方。

会计科目分为总账科目和明细类科目。

  1. 总账科目,又称一级科目,是总括反应会计要素的科目,如银行存款、应收账款。
  2. 明细类科目,是对总账科目所包含的内容的细化所形成的科目。在明细科目中,根据需要设计二级科目、三级科目。其中,没有下级的科目称之为叶子科目。注:只有叶子科目下才可以开账户。

常见会计科目:

(1)资产类科目

  • 银行存款
  • 应收账款
  • 在途调拨

(2)负债类科目

  • 个人账户余额户
  • 公司(商户)账户余额户
  • 应付账户

(3)共同类(主要是待清算)

  • 待清算充值款项
  • 待清算提现款项
  • 待清算支付款项

会计科目与账户的对应关系见下图:

四. 业务流程

1. 总体交易流程

(1)业务系统

  • 交易网关:处理个人或者企业用户的充转提业务
  • 资金调拨等系统:进行资金调拨时,调用账户记账;长短款的处理。
  • 其他系统:其他业务系统的账户记账请求

(2)账户系统

记录每笔交易的交易收付记录

(3)会计系统

按照企业会计分录流水记账,记账采用复式记账法。

(4)清结算算系统

  • 交易清分,算出给每个账户打多少钱,同时从每个账户收多少钱;
  • 交易结算出款:调用银行/通道代付接口,自动出款。
  • 对账:核算通道与支付系统的应收应付。注:对账业务流程最好不要跟清算、结算勾连在一起,跟上游通道对账与给商户付多少钱最好不要业务先后关系。

2. 账户、会计处理流程

来自支付系统交易,一笔交易至少会在账户系统中产生一条账户流水记录(明细账),同时会在会计系统中根据业务的需要产生一套或者多套会计分录流水,账户余额与会计余额相对应。概括之,账户系统是提供对外客户的账户支持,客户的查询余额,账务明细均来自于此;会计系统是为了内部核算管理的需要而设立的,所有的银行资金清算与结转都需要会计系统的支撑,内部户与外部户的资金核算管理也需要会计系统,两个系统相互依赖,账户系统是会计系统的前置。

记账过程如下:

  • 在前端支付订单产生之后,支付系统按照订单内容封装成各类交易,并组成交易报文,通过银行通道提交到银行进行支付;在银行完成支付交易指令的处理后通知到支付系统,支付系统根据银行报文内容通知到商户订单的处理结果之后,交易处理过程即告完成。
  • 为提高交易性能,交易必须与账务分离,以提高交易处理性能和效率,从而有针对性的分块解决复杂业务逻辑。因此,在支付交易处理完成之后,前端交易处理系统根据业务场景将交易分实时和非实时记账的方式,将成功的交易以流水的形式提供给账户系统。整个交易过程,在支付核心送账户系统时其实已完成。
  • 账务的处理分为账户系统处理和会计系统处理,账户是会计的前置。交易流水到达账户系统之后,账户系统为每笔交易分配账务流水号,账务流水号的形成,需要账户前置调用计费服务,算出商户的交易手续费。账户流水形成后,若是非实时记账,则直接通知业务系统记账完成,之后再开始记录分户账和更新余额,若是实时记账,则系统开始记分户账与生成账户余额,余额更新完毕后,通知业务系统记账完成。
  • 账户系统记账完毕后,将定时以批量文件的方式送会计记账,同理,会计记账也将为每笔交易分配会计流水,对于会计记账,需支持一借一贷、一借多贷和多借一贷的记账模式。会计记账也分为记分户明细账和更新会计余额。
  • 会计记账完毕后,每日日终时,进入日终批处理过程,日终批处理是对日间没有处理完毕,以及不需要在日间处理的任务进行批量处理。在记账中,日终批处理主要指业会核对,即账户系统余额与会计系统余额间的核对。

至此,整个记账处理过程才算真正结束。

原文地址:https://www.cnblogs.com/sea520/p/11634966.html

时间: 2024-10-10 04:07:50

支付系统中,账户体系的设计与记账处理的相关文章

第三方支付架构之账户体系架构设计

参考: [财务]账户体系架构设计相关思路记录 第三方支付架构设计之-帐户体系

支付系统、账户系统有关模型

简介:账户体系是支付系统的基础,一个支付系统必须要有账户体系.因此账户体系的设计显得尤为重要. 支付账户和登陆账号: 两个概念:支付账户和登陆账号,这是属于两个不同业务的领域. 支付账户:用户在支付系统中用于交易的所有者权益的凭证. 登陆账号:用户用于登录系统的凭证和个人信息. 两者的联系:一个用户可能会有多个登录账号,一个登录账号又可能会有多个支付账户.比如,用户可以有零钱账户,储值卡账户等各种账户.一般来说,一个支付账户不可能在多个登录账号中公用. 账户的设计需求: 在支付系统中,对于账户的

支付系统中的常用工具

StringUtils.java 处理常用字符串:判断是否为空isEmpty(String value); 按字典排序并拼接参数:createLinkString(Map<String,String> params); 1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.List; 4 import java.util.Map; 5 6 public class StringUtils

IM系统中聊天记录模块的设计与实现

看到很多开发IM系统的朋友都想实现聊天记录存储和查询这一不可或缺的功能,这里我就把自己前段时间为傲瑞通(OrayTalk)开发聊天记录模块的经验分享出来,供需要的朋友参考下. 一.总体设计 1.存储位置 从一开始我们就打算在服务端和客户端本地同时存储聊天记录,而且,在客户端查看聊天记录时,可以选择是从本地加载.还是从服务器加载.这样做的好处有两个: (1)从本地加载聊天记录速度非常快. (2)当更换了登录的机器,在任何地方任何时刻都可以从服务器加载完整的聊天记录,记录永远不会丢失. 2.存储方案

(3)MEF插件系统中通信机制的设计和实现

1.背景 一般的WinForm中通过C#自带的Event机制便能很好的实现事件的注册和分发,但是,在插件系统中却不能这么简单的直接用已有的类来完成.一个插件本不包含另外一个插件,它们均是独立解耦的,实现插件和插件间的通信还需要我们设计出一个事件引擎来完成这个需求. 目前很多高级语言中基本都实现了观察者模式,并进行了自己的包装.比如C#中的delegate和event组合,java awt中的Event和addActionListener组合,Flex中的Event.addEventListene

怎样彻底解决支付系统资金账户高并发引起的表死锁问题?

作者:bright 链接:https://www.zhihu.com/question/59914547/answer/170671680 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 路过,本人从事支付系统搭建和运营工作,业内合作过多套大型互联网交易平台.简单说下自己的看法.---------------------------------------------------------------------------------------------

大型的支付系统,如支付宝、财付通每天交易额都非常巨大,后系统是如何对账、风控的呢?

为了可以更好地解释支付结算系统对账过程,我们先把业务从头到尾串起来描述一下场景,帮助大家理解:一个可能得不能再可能的场景,请大家深刻理解里面每个角色做了什么,获取了哪些信息:某日阳光灿烂,支付宝用户小明在淘宝上看中了暖脚器一只,价格100元.犹豫再三后小明使用支付宝网银完成了支付,支付宝显示支付成功,淘宝卖家通知他已发货,最近几日注意查收. 小明:持卡人,消费者,淘宝和支付宝的注册会员,完成了支付动作,自己的银行账户资金减少,交易成功.银行:收单银行,接受来自支付宝的名为“支付宝BBB”的100

区块链币支付系统开发技术解决方案

区块链支付应用.分布式网络技术可以在去中心化的机制下使用户以更低的费用和更快的速度完成跨境转账. "区块链"是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了过去十分钟内所有网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块."区块链"技术拥有去中心化.方便快捷.高安全性.记账速度快.成本较低.验证等优点. 背景:需要开发区块链支付系统,找源中瑞科技加ruiecjo了解开发技术. 区块链支付系统相比传统支付: 使用区块链数字资产作为承载,实现了

电子支付系统安全技术

转自 http://baike.1688.com/doc/view-d36110860.html 电子商务支付信息流动典型结构如图1所示.在图中,信任第三方是CA认证中心.商家和客户都必须到CA得到自己的证书,然后通过CA认证.很明显,各个部分信息传递,必须要经过加密处理:信息来源和目的,必须经过认在电子商务支付系统中,消费者和商家面临的威胁有: 虚假定单:假冒者以客户名义订购商品,而要求客户付款或返还商品: 付款后收不到商品: 商家发货后,得不到付款: 机密性丧失:PIN或口令在传输过程中丢失