资金清结算系统:高效管理资金流动的解决方案

发表时间: 2024-06-03 15:56

扫码支付、小程序支付这样支付产品我们每天都在用,但是支付背后资金是如何流转到我们银行账户就神秘了很多。今天我们就来介绍这个银行和商户之间的资金搬运工,清结算系统。

要结算资金首先要进行对账,只有账务核对无误之后才能给商户结算资金,因此我们先从对账工作说起。

一、什么清结算对账

清结算系统就是因为跨行支付订单和资金不能同时到账,因此需要日终对订单做核对然后完成“渠道清算、商户结算、银存结转”,显然这里面的对账是至关重要的。

1.1 什么是对账

对账顾名思义就是“核对两个或者两个以上账簿或者账户之间账务记录”,我们看下这张图。

图1:财务对账

这是个典型的企业财务对账过程,这个过程就可以看到有代表“账务”的账簿,有代表“凭证”的合同/订单,有代表“实物资金”的银行账户。每一笔账务记录都需要做到“账、证、实”的平衡。

1.2 对账核对维度

对账核对的维度分为对外的交易层面与对内的会计层面。

图2:对账的核对维度

1.2.1 交易层面

交易层面就是每个商家/用户可以看到的账单、资金变动和账户余额。由于支付的链路比较长采用环环相扣的核对方式,每个节点都要核对明细、发生额、余额的核对,这就是一笔完整账务核对。其中支付订单作为链接上下游的“桥梁”负责串联勾兑关系,传递支付结果。

1)收支明细:交易的收款、付款的明细记录。包含了订单、交易对手、支付方式等完整的信息。

2)发生金额:收款与付款轧差后的金额,也是需要结算的汇总金额。

3)账户余额:账户期初和期末余额,以及每笔账务产生的余额变动。

1.2.2 会计层面

会计层面就是“账、证、实”的核对,其中“明细、发生额、余额”链接了外部的交易和内部会计账务。他们的勾兑关系有以下几种方式。

1)账证核对(支付渠道-支付平台)

支付平台的账务明细与渠道流水之间的核对。

2)账账核对(支付系统-支付核心)

支付平台的账务汇总信息与支付核心的账簿清算科目进行核对。

3)资金账实(支付系统-结算银行)

前面只是账务信息的核对,实际到账资金还需要核对下银行账户(或备付金)的结算流水与发生额是否相符,这就是资金的账实核对。

1.3 对账模式比较

1.3.1 清结算对账(清算与结算分离)

清结算因为有备付金作为银存账户,所以采用了清算与结算分开核对的模式。之所以要分开是为了给商家提供灵活的结算,这样商户做各种“T1、D1、D0、S0”就都可以。

1)渠道清算:核对清算机构、清算银行的跨行资金清算头寸和银存账户的余额。

2)商户结算:你可能会问不依赖渠道对账,我怎么给商家结算?有异常订单怎么办?其实只要给商家结算成功订单就行了,超时和差错订单可以待调账成功后再结算。

图3:清结算对账

1.3.2 聚合支付对账(环环相扣核对)

与之对应的非持牌机构通过聚合各种资金通道的对账,由于没有资金池加持,因此对账需要环环相扣的核对过程,资金结算的灵活性也是依赖于支付渠道的能力。

聚合支付的资金账实因为商户开户银行无法给商户入金通知,所以只能线下做账实核对。

图4:聚合支付对账

二、清结算业务架构

2.1 清结算系统建模

图5:清结算建模

构建清结算系统需要从四个层面进行建模,分别是架构模型、流程模型、要素模型和策略模型。

1)架构模型:规划清结算系统与外部系统的交互边界,以及内部系统的应用模块

2)流程模型:串联内部应用于外部系统上下文交互和集成关系。

3)要素模型:通过标准的对账和结算数据贯穿每个交易和流程节点。

4)策略模型:对账结果通过标准的差错处理策略实现统一的调账。

2.2 清结算业务架构

图6:清结算架构业务架构

2.2.1 清结算边界划分

1、支付引擎(支付数据)

支付引擎负责联机交易的支付指令处理,为清结算系统提供“支付数据”进行对账。

2、账务系统(账务数据)

账务系统是内部的账务基准,为清结算系统提供账务数据和最终的资金结算处理。对于差错账务也提供差错调账接口来更正账务。

3、支付渠道(资金数据)

1)对账文件:下载渠道的对账文件,包含了汇总清算文件和明细核对文件。

2)支付指令:接收来自渠道的来账和清算通知,以及进行文件出款

2.2.2 清结算系统应用

清结算的应用底层是“数据解析、文件处理、对账处理、资金处理、清算处理”等五个服务。中台应用就是结算人员的工作台,具体功能清单如下。

图7:清结算系统功能清单

1、入款和出款:在渠道出现异常和文件付款的时候,通过这两套菜单出款和入款功能处理

2、对账管理:明细对账过程的管理,包括渠道对账和差错调账。

3、资金管理:资金汇总对账的管理,渠道清算和结转的管理。

4、异常处理:单独用来处理做登账和补单处理的。

三、联机交易和账户

在介绍清结算对账流程之前,我们先介绍下联机交易的正向流程,对账就是联机交易的日终流程。

3.1 日间账务发生情况

图8:某日发生的所有交易情况

当天支付系统发生了四笔交易:

1)收款:1000元,D1要结算商户999元,D1待扣手续费10元。

2)收款:100元,扣手续费1元,超时未返回结果。

3)付款:500元,扣手续费1元,付款成功99元。

4)退款:50元,返还手续费1元,退款成功50元。

3.2 交易与账户关系

图9:交易在账户间的流转关系

上图我们可以看到整个在账户间账务流转关系。D1对账时付款、退款都已经成功结算了,收款有一笔1000元要结算,一笔超时系统内未做登记,需要对账后明确状态。因此期末给商户结算成功收款的1000元即可。

四、清结算对账流程

4.1 清结算流程

基于以上联机交易处理我们来进行日终的清结算对账,他主要分成以下几个步骤。

图10:清结算流程图

1)数据准备:人工或者自动发起对账任务,下载渠道和支付核心的对账数据进行解析后对账。

2)对账清算:把渠道和支付系统的数据先做汇总核对,如果成功直接汇总确认后按“入款、出口、退款”进行清算和银存结转。如果有异常交易则继续明细核对,获取差异然后进行差错处理。

3)商户结算:商户结算不依赖于渠道对待,系统任务核对商户的成功订单和待结算资金给商户结算收款资金,并生成商户的结算账单。

4.2 对账数据准备

数据准备通过人工导入或者自动下载的方式获取渠道“对账文件”解析后入库,随后与核心系统的账务明细文件进行对账。

图11:网联对账文件获取

文件获取方式每个渠道都有所不同,但是文件获取的要求基本是一样的。但是我们在对账前要确认如下几点。

  • 下载内容:交易汇总和明细文件都需要具备,这样可以进行总分账核对。(我们这里以网联为例,他有联机差错推定功能,因此多了差错文件。其他文件内容各类支付通道都差不多)。
  • 下载时间:什么时间点下载数据也要确认好,这样能保证对账任务的顺利进行。
  • 下载方式:一般有http、https、ftp、sftp等方式。
  • 文件格式:涉及文件下载后的解析,一般汇总文件比较小直接可以下载,明细文件由于数据量较大会有zip压缩后获取。同时文件解压还会有安全加密处理方式这里就不展开了。

4.3 对账清算

图12:对账清算流程

4.3.2 对账处理

1)汇总核对:

我们首先会把渠道清算文件与支付核心的账务数据进行汇总核对,因为只要总账的资金对平了,明细账也就平了,这样对账效率是比较高的。

2)明细核对:

如果不平怎么办呢?那就只能对明细了,我们会将下载的渠道明细数据与账务明细数据进行逐笔核对来找到差错,然后生成包含了成功和异常的对账结果。

4.3.3 对账结果

对账结束后结算员就要查看对账结果进行清算和结转工作了。如果对平就要按“收款、付款、退款”的维度进行汇总确认完成银存结转。如果有未对平的交易就要进行差错处理。

4.3.4 汇总确认

账务对平后就要按照“收款、付款、退款”的清算账户科目维度进行汇总确认。(还记得我们在《3.2交易与账户关系》中介绍的三个清算户吗?就是这三个清算科目的维度)。

如果三个维度有一个或多个维度不平怎么办?要对不平的那个科目就要进行差错处理,对平之后才能结转。

4.3.5 差错处理

对于差错,我们有“自动差错处理”和“人工差错处理”两种方式;

1)自动差错处理:就是以渠道对账结果为准,更新本地订单和向本方支付核心进行差错调账。自动调账功能采用“冲、补、挂”来进行差错处理。

2)人工差错处理:有些交易会出现订单勾兑不上、金额不符等异常,这种情况下贸然使用自动调账就非常危险了,因此需要通过人工确认后通过补单、登账、退款、修正异常、线下处理等方式来调整差错。

3)重新对账:差错调账完成之后对于“未调账”的支付数据可以进行重新对账。

4.4 商户结算

图13:商户资金结算

清结算的渠道清算不耽误商户资金的结算,我们只对商户成功收款的订单与待结算资金进行核对即可,当“订单发生额>=商户待结算余额”即可结算。

我们前面案例介绍了,当天有4笔交易其中一笔成功收款1000元,一笔收款超时100元。我们只结算成功的1000元订单,并扣除手续费。至于那超时的100元,我们当天不结算,对平账之后再处理。剩下付款、退款交易已经完成结算了直接生成商户结算账单就可以了。

五、清结算数据要素和策略

5.1 账务核对表

图14:账务核对表(汇总统计勾兑)

对账有两种方式,一种是逐笔勾兑,一种是汇总统计勾兑。逐笔勾兑比较准确但是慢,汇总统计勾兑比较快,但是会因为主键不匹配造成批量的数据出现异常。考虑到对账性能和汇总异常勾兑的概率,我们这里采用了汇总统计勾兑的方式。

5.1.1 对账主键设计

我们的对账主键使用了“批次号、渠道、交易类型、清算日期”作为对账主键。而生成的对账结果增加了“对账状态”把对平的交易和差错分开,这样可以分批次对成功的交易进行期末结转。

1)批次号:为了能够进行一天多个批次的对账,在主键中增加了批次号来细分每天对账的数据。

2)交易类型:交易类型就是按照清算科目“入款、付款、退款”的维度来设计的,如果考虑到来账的“退汇、线下充值”等场景,我们可以再增设相应科目。本案例中做了简化把退汇放在“付款科目”把线下充值放在“入款科目”。

5.1.2 对账要素设计

我们对账要素分为五部分

1)对账信息:

就是对账的主键信息和订单信息,用来勾兑数据和展示必要的订单信息使用的。

2)系统信息:

就是本方账务数据的统计信息,会统计本方支付订单的交易和手续费成本的笔数和金额,用来与渠道核对。其中手续费成本每条渠道结算方式和周期不尽相同,可以不填。

3)渠道信息:作为系统信息的核对一方,也是按照交易金额和手续费金额统计总笔数和总金额。

4)核对信息:核对信息就是对账结果,显示差异的笔数和金额。

5)审核信息:记录结转和调账都要进行审核的记录。

5.1.2 汇总勾兑和明细勾兑

首先是按照清算文件进行汇总核对,如果不平的话我们会加载渠道明细数据进行勾兑。明细勾兑继续采用“批次号、资金渠道、清算日期、业务类型”这几个主键来进行勾兑,分别勾兑出系统和渠道的笔数和金额,并计算出他们的差异后生成对账结果。

5.2 差错策略表

图15:差错策略设计

不同的场景可以产生出四类差错和20多种差错处理策略,这么多异常处理对于人脑来说需要长期的训练。有没有比较简单有效的办法呢?

为了方便和清晰的处理差错和调账方式,我们采用了策略化差错设计。差错策略还是“规则引擎的设计思想”,把输入结果拆分成“输入因子”,通过规则模板的筛选,输出对账结果和对应的调账建议。

从下图可以看到,我们给每条渠道配置一个差错策略,内容分为“差错因子、对账结果和调账策略”。这样同类型的渠道可以复用差错模板,并且也能支持自动调账处理,即使手工调账也能给出资金风险提示,对下一步操作给出建议。

图16:差错策略表

5.2.1 差错因子

差错因子和路由因子的设计原理是一样的,他就是通过“对账结果”的分析,得到了能够组合不同差错场景的因子。这里我们使用了“资金渠道、交易类型、本方状态、渠道状态”作为差错因子来路由对账结果和调账策略

5.2.2 对账结果

对账结果主要分为四种情况

1)终态:这是最理想的状态,系统和渠道都勾兑平了

2)订单勾兑:由于渠道掉单和记账超时等异常问题,会出现一方有数据,另一方没有数据。这种情况在渠道质量不佳,或者遇到瞬间大并发的交易比较容易出现。

3)状态不符:超时状态一般会在对账的时候就会同步了。如果出现一方成功,另一方失败这种情况就比较糟糕了,说明状态登记错误或者渠道有拒付的情况发生。

4)金额不符:这种属于金额计算错误,需要人工确认计算错误出现的原因。

5.2.2 调账策略

调账就是对差错进行账务更正,他分为常见差错的“自动调账”和异常差错的“人工调账”。

1)自动调账:对于比较常见的超时订单,测试订单等异常情况可以进行自动调账纠正账务系统的差错。

2)人工调账:对于掉单、金额异常问题造成的差错需要先挂账,人工处理后再进行核销处理。

5.3 差错策略最佳实践

1、作为系统功能固化

差错策略可以做出一个系统功能来进行差错和调账策略的统一管理,这样既能提升差错处理的效率,也能向结算人员警示资金风险和需要进一步的操作建议。

这种方式在大规模出现异常的情况下,20多种组合产生的调账策略,一般人根本应付不过来。有了这样的处理差错处理机制,它会救你“命”的

2、作为差错分析工具

如果支付系统交易量不是很大的情况下,设计差错策略投入产出可能会不合适。此时可以把这套方法作为差错分析工具,并登记好每条渠道的处理策略形成兜底方案。这样在出现异常能够快速的定位问题和进行处置。

六、清结算交互演示

图17:清结算交互流程图

6.1 对账任务

图18:对账任务

我们可以配置一个自动对账的任务来定时获取渠道的对账文件进行自动对账。对于一些渠道无法自动下载对账文件可以通过手工上传对账文件的方式进行对账。

6.2 对账结果

图19:对账结果

完成对账后可以在这里查看指定渠道的对账结果,对账结果会按业务类型和对账状态分类汇总输出,这样可以方便操作人员分批次来处理来处理。

如果是对平的数据可以直接进行汇总确认完成资金的结转,如果是异常差错可以查看差错详情来进行差错的处置。

如果一个业务类型出现对平和不平的数据,结算员想合并后重新对账,此时可以做对账撤销。系统支持对于未对平和未调账的数据进行重新对账。

6.3 汇总确认

图20:汇总确认

对平的数据可以进行结转,首先是经办人员选择复核提交录入对于的入账科目,提交给复核员。复核员核对“试算平衡”数据后确认提交完成该渠道清算和期末结转。

6.4 差错处理

图21:差错处理

未对平的数据可以按“业务类型+对账结果”分批次的差错调账。调账操作可以根据“资金风险、常见问题、操作提示”进行处理。

6.5 人工补单

补单(又称补偿)就是在渠道掉单的情况下,通过发起一个定时任务从渠道方查回订单结果继续账务处理。

图22:需要补单的对账结果

联机交易阶段会有轮询任务来处理掉单的情况,但是会有固定次数。如果对账时还未返回结果,在结算人员与渠道方确认后手工发起补单查询从渠道一侧批量查回订单数据,继续后续操作完成账务处理。

图23:补单处理流程

6.4 人工登账

登账是在渠道有订单情况下,根据渠道订单向支付核心补录账务信息。登账的情况有异常差错和银存账户的动账处理记录。

1)异常差错

需要登账的异常差错有,渠道生产和测试混用带来的测试订单;还有交易节点考虑不完善没有正确入账的情况,例如来账入金、线下充值、来账退汇等问题。

2)银存动账交易

有些交易清算银行会直接操作银存账户,但是没有实时通知到支付系统。例如手续费扣收,利息结息,在途款调拨等。这种情况下需要人工获取对账单来登账记录银存账户的变动情况。

图24:常见的登账账务处理

七、总结

7.1 四张图搞定清结算

本文把清结算系统的设计主线内容进行了完整的介绍,内容比较多建议大家记住以下四张图,整个对账清结算体系就能建立起来了。

图25:四张图搞定清结算

如果还是觉得记不住的话,那就记住这张流程图吧,同时参考我提供的对账要素和差错策略两张表格。

图26:对账流程图

本文由人人都是产品经理作者【刚哥】,微信公众号:【刚哥白话】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。