`

[转]跨行清算系统的实现原理

阅读更多

最近看了很多银联方面的清算系统的设计原理,对于跨行清算系统有了很大的了解,写这篇文章的目的是在于从一个程序员的角度去思考一个跨行清算系统的架构是如何实现的以及整个过程中我们有哪些思想是可以借鉴的。由于金融里面涉及到太多的专业名词,包括借贷,备付金,头寸,调拨等等,这里不会涉及到这些,取而代之的是以大家可以理解的概念去解释。

下面简单的介绍一下两种跨行清算系统的实现原理以及特点。一种跨清算系统是我们最熟悉的银联,还有一种是越来越流行的第三方支付系统,比较典型的是快钱。

首先来拿生活中的一个非常常见的例子来说明跨行清算的整个过程,这里面不涉及交易费等其他概念。

跨行取款流程

张三是工行的持卡人,他需要取现金,但是找不到工行的ATM机器,发现附近有建行的ATM机器,他只能去建行取款,整个过程就是跨行清算的过程,我们以这个场景为例,分析一下业务流程,具体交互流程见下面一张图。

1B3CB2A3 1863 403C AA5A F1F49E7EF416

 

工行持卡人张三在建行ATM机器取款100,ATM请求建行主机,由于是工行的卡,建行不识别,只能请求工行去处理,工行识别持卡人账户并扣款100,然后通知建行,建行则通知atm吐钱。

这里整个系统要解决两个问题:

1 建行如何与工行通信

2 建行和工行之间如何清算,如上图结果,工行欠建行100.

整个系统的分析基于以上两个问题,下面首先解决是通信问题

 

跨行通信的两种模式

我们先假设工行提供接口,只需要建行发送指约定格式的报文,即可于工行通信,这种相当于建行直接通过接口方式与工行通信。如果是这种方式,只能解决建行和工行的单向通信,如果工行和建行通信,则工行要发送建行指定的通信报文格式。可是大家想想,如果银行更多怎么办,下面是三家银行间的通信

39A9848E 13A0 4F15 ABEB F1CE91BBAD73

当有三家银行的时候,通信链路就有3*2=6条,当银行越来越多的时候,这种点对点的通信变的越来越复杂,每新增一家银行,他要做之前银行都要做的很多重复性的劳动,这样的成本非常高,也不经济,那么必须出现一个网络,它能够接入所有的银行,新的银行只需要接入这个网络,就可以和其他所有的银行进行通信。

先把这个网络成为通信网络,这种通信网络有两种方式可以连接所有的银行

  • 1 这个通信网络定义标准接口,所有的银行都必须实现这个通信网络定义的api,新的银行如果想要接入这个通信网络,必须实现通信接口约定的协议。简称公共接口模式
  • 2 这个通信网络主动去连接所有的银行的接口,把所有银行的接口信息都接入里面,就像一个适配器,新的银行如果想要接入这个通信网络,这个通信网络必须主动联系银行,按照银行的接口协议实现通信,简称适配器模式。

  下面一幅图演示了这两种模式的不同:

7BDB9C58 65C9 4F58 B9B0 EA37D977317E

对于这两模式,主要博弈就在于谁强谁弱。显然第三方支付公司属于适配器模式,需要一家一家银行去接入,至于银联,个人认为应该是第一种模式,这种对于银联这种需要稳定的系统来说是最具有优势的。

 

跨行清算保证金模式

解决了通信问题,下面就看如何解决资金的清算问题。一种简单的方案就是工行在建行里面开设一个保证金账户,用这个账户去偿还在整个跨行交易中应付给建行的资金。

88169047 B15D 422F 828E 685ADF9207D7

 

从上图来看,这种方案确实可行。只需要工行在建行里面放足额的保证金,就可以满足跨行的费用。但是这里面实际上存在非常多的问题,

  • 1 如果银行越来也多,每个银行都要在其他银行存钱,太不经济了
  • 2 保证金需要放多少资金?如果一直都没有发生跨行交易,工行就亏大发了
  • 3 如果保证金不够怎么办?交易失败还是记应收款?

对于第一个问题假设银行越来越多,会导致工行需要在其他每个银行里面都开设保证金账户(见下图),是一个很不经济的方案。

66D7CC71 8C84 4621 B234 3E06FAC5856F说明这个在其他银行存保证金的方案是不可行的,和之前通信的问题一样,是不是可以把所有的银行保证金账户单独管理起来,统一放置在一起,方便各个银行之间的清算。我们暂时把这个系统称之为保证金系统。

保证金系统

保证金就是方便各个银行之间的清算,需要单独由一个系统进行管理,解决了跨行之间保证金存放的问题。每个银行只需要在保证金系统中存点钱就可以了。保证金系统也有两种模式。先看看比较好理解的第一种模式:

EB1C0D6C C30F 4B7D A120 7CB46AC33DD3

在这种模式下,银行先把一部分钱存放在保证金系统里面,同时银行内部建立一个虚拟账户,记录存放了多少钱,主要是方便对账,万一这个保证金系统钱算错了怎么办。你可以想象一下,银行是很小气的,为啥愿意把钱存放到这保证金系统里面,这部分钱干啥不好,能够银行这么干的只有国家了,这个系统就是央行的备付金管理系统。每个新增的银行都要存一份钱在这里。

另外一种方案是倒过来思考,既然没有牛逼的央行作支撑,那可以在每个商业银行都建立一个账户,用这个账户负责和银行进行清算。每新增一家银行,就在那个银行里面开一个保证金账户。

EBA5972D 06C6 4DC7 A7E4 4CC68455988B

这两种方式有本质的不同,一个是银行把资金的一部分转出到保证金,银行建立虚拟账户和保证金里面真实的资金映射。一个是保证金系统把资金转出到各个银行,自己内部建立一个虚拟账户和银行中真实的资金账户进行映射。这个间接的银行了后续的对账机制,这里先不叙述。

所有的第三方支付公司跨行清算的流程都是第二种方式,只有国家级清算公司(比如银联)是第一种方式,这是一种资源和权力上的不平等,不过是可以理解的。

清算系统

保证金系统解决了保证金存放的问题,接下来就是解决如何清算的问题。假设保证金转账是实时的,就要面对上面说的问题,保证金不够的情况下,跨行交易是成功还是失败。这是一个业务上问题,有很多种解决方案,我们暂不说。从技术上来讲,如果每一笔交易都要保证金实时记账,那么保证金系统的负载太大,事务如何保证等等一些列的问题。所以一个最简单的方案就是:一天结算一次。

每天由一个系统记录这些跨行交易信息,汇总出来,统一记账。这样一天只需要调用一次保证金系统即可。那么整个清算过程则是下面的流程:

  • 1 系统T日发生建行和工行的跨行交易100

08F9F26D 11BC 4BCA 9FAD F5C9F7B9691C

  • 2 清算系统T+1日汇总T日工行和建行之间发生的交易明细数据,并且发这些数据发给建行和工行进行确认

111356A9 ECA8 490A 977A 1FCD613F054F

 

  • 3 工行建行分别对明细对账确认之后,通知清算系统确认交易明细无误,清算系统开始清算,调用保证金支付系统转账。
  • 4 清算完成之后,工行和建行分别获取保证金系统的真实金额和自身系统内部的映射账户进行余额对账。

C84544CD AE52 4D98 999C C8B587B3E6AE

 

清算中心最主要干得事情就是统计谁欠谁多少钱,以及触发保证金系统的调拨操作。

 

对账流程

对账包括两个部分,一个是跨行交易明细的对账以及保证金余额的对账。

首先要思考的是:对账是谁发起的 ? 这个是了解对账的本质。

我们举生活中的一个例子,我们把钱投资到一个人,那个人负责公司的日常运作。你肯定会主动了解公司的账务,因为那个是你的钱。对账的发起人也是如此,对于银联的清算过程,对账的发起者是商业银行,因为你把钱放在保证金系统里面,这是你的钱,你需要去关心这个的,银联可不关心这个。

对于另外一种保证金系统,把钱放在各个银行里面了,那么对账的发起者就是这个保证金系统维护者了。目前普遍的第三方支付公司都是这个模式,所以他要找各个银行要结果明细进行对账,确认自己的资金安全无误。

 

以上就是一个简单的跨行清算系统的雏形,从一个就简单的例子入手,说明一个清算过程。目前银联的第三方支付公司的清算过程大致如此,但是实现细节远比这个复杂。但是一个基本的清算系统的本质模型大体上是不会变的。当然这个只是对于同币种的清算,不同币种或者虚拟货币的清算会涉及到汇率的问题,这些就很复杂,有机会在研究一下,后续在分享。

PS:以上很多名词都是自己的随意写的,里面很多专业名词这里不提及,有兴趣的可以自己去了解。

GodIsCoder 
博客园blog地址:http://www.cnblogs.com/aigongsi/ 
独立Blog: God Is Coder 
个人网站: iphone发码网 
本人版权归作者和博客园所有,欢迎转载,转载请注明出处

分享到:
评论

相关推荐

    跨行清算系统的实现原理.pdf

    本文将从程序员的角度探讨跨行清算系统的实现原理,避开金融专业术语,以易于理解的方式阐述其核心机制。 首先,跨行清算系统的主要目标是解决银行间的通信和资金清算问题。以一个简单的跨行取款场景为例,假设工行...

    中央银行第六章支付清算系统.pptx

    中央银行支付清算服务的主要内容包括组织票据交换,处理支票、本票和汇票等传统支付工具的清算,以及提供异地跨行清算服务,使得资金能在不同区域、不同银行间顺畅流动。此外,央行还扮演着最后贷款人的角色,当银行...

    支付清算知识介绍(大小额支付系统运行范围)

    根据给定文件的信息,我们可以提炼出关于支付清算知识特别是大小额支付系统运行范围的相关知识点。 ### 支付清算基础知识 ...对于金融机构和个人用户来说,了解这些支付清算系统的运行原理和具体应用场景非常重要。

    5资金清算与往来.pptx

    - **电子汇划业务**:通过资金清算系统实现异地资金汇划,分为划出款项业务(借报)和划入款项业务(贷报)。 5. **系统内资金调拨**: - **备付金**:资金清算系统运营所需,各清算行在总行清算中心开设备付金...

    财务管理第6章中国现代化支付系统的核算.pptx

    网上支付跨行清算系统专注于新兴电子支付,如网上支付、电话支付和手机支付,实现跨行账户信息查询和在线签约。支票影像交换系统则实现了支票在全国范围内的通用。 3. **支付结算工具**:中国现代化支付系统支持...

    第六章联行往来与资金汇划清算业务的核算.pptx

    资金汇划清算系统是银行处理结算资金和内部资金汇划的关键工具,它通过电子计算机网络实现逐级传输,包括汇划业务经办行、清算行、省区分行和总行清算中心四个部分。经办行负责具体业务操作,清算行负责辖属行处的...

    2022国际结算-国际支付清算体系(精选试题).doc

    9. **当天资金**:指在交易日当天完成资金转移的支付方式,通常在实时全额清算系统中实现。 10. **碰头行转账结算**:在国际贸易中,当交易双方在第三国银行都有账户时,可以通过碰头行转账结算,避免了直接货币...

    67支付清算业务和其他业务(第三版).pptx

    中国的支付体系建设取得了显著进步,中央银行通过不断优化支付系统,如大额实时支付系统(HVPS)和小额批量支付系统(BEPS),以及后来的网上支付跨行清算系统(超级网银)等,极大地便利了公众和企业,促进了经济的...

    项目七资金汇划与资金清算业务处理.pptx

    3. **资金汇划清算系统的构成**: - **经办行**:负责具体业务的办理,如发报行和收报行。 - **清算行**:在总行开设备付金账户,处理辖属行处的清算。 - **总行清算中心**:负责各经办行之间、清算行之间的资金...

    外汇清算业务介绍.pptx

    通过本次培训,参与者能够深入了解外汇清算业务的操作流程、报文处理机制以及相关系统的运行原理,为提高外汇清算业务效率和准确性提供了基础。对于银行业从业人员来说,掌握这些知识是进行高效外汇业务操作的关键。

    支付系统设计 论文

    - **跨行清算**:对于不同银行之间的资金转移,则需要通过清算系统来实现。这一过程涉及到资金的划拨、对账以及最终的清算,确保每一笔交易都能够准确无误地完成。 #### 五、支付方式的发展 - **传统支付方式**:...

    大小额支付系统培训PPT(PDF版)

    - **理解大小额支付系统运行原理**:掌握HVPS与BEPS的工作原理、清算机制及操作流程。 - **掌握大小额行内系统基本知识**:熟悉行内系统如何与CNAPS集成并处理支付业务。 - **运用培训知识解决相关业务问题**:能够...

    支付系统设计_(核心业务+数据对接注意事项)20200301.docx

    跨行交易则需要经过清算,例如小明的A行与老熊公司的B行之间的交易。A行先扣款,然后通过清分计算出净额,最终在特定时间(如凌晨)进行资金划拨,完成清算。整个过程提高了资金流转效率,减少了资金在途时间。 ...

    银行核心系统入门简介

    例如,在通存通兑场景中,银行需要实时更新账户余额,同时处理跨行交易,这涉及多个银行之间的资金清算和账户同步。系统需确保交易的准确性和及时性,避免出现资金错配或风险。 对于IT从业人员来说,了解这些基本的...

    银行核心系统

    清算和结算模块处理银行间的资金转移,包括跨行转账、外汇交易等。这部分涉及到复杂的资金流动和汇率转换机制。 - **4.7 额度控制** 额度控制模块负责监控客户账户的可用额度,防止超限交易发生。这对于维护银行...

    银行IT架构

    - **中国现代支付系统(CNAPS)**:实现跨行资金的实时清算和结算。 - **中央银行会计集中核算系统(ABS)**:负责中央银行内部财务管理和核算。 - **中央银行国库业务处理系统(TBS)**:处理国库相关业务。 - ...

    Thinkphp3.2各大支付平台在线支付

    3. 银联UnionPay:银联支付需要接入网上支付跨行清算系统(简称“超级网银”),获取商户编号、证书等信息。银联支付的接口相对复杂,需要处理更多银行间交互的问题。 四、支付流程实现 1. 创建订单:在用户提交...

Global site tag (gtag.js) - Google Analytics