小戴
作者小戴2020-03-11 10:26
软件开发工程师, XXX

银行核心系统之清算体系演变及基础架构设计

字数 6587阅读 4415评论 0赞 3

支付清算系统是经济金融活动的基础性支撑。支付、清算体系建设是金融理论与实践的重点课题。本文主要描述了支付系统建设的发展历程及构成,分析了银行内部清算体系设计,有利于快速建立起金融服务体系思路。希望略尽绵薄之力,让刚入行的银行IT人少一些困惑,多一些兴趣,早一些进入高速成长期。

也希望更多的有经验的老师多提意见,不吝赐教,共同完善本公众号中,关于“银行核心系统”的系列文章,为这个市场做一点小事情。同时也让对银行核心感兴趣的企业,多一些对业务和技术上的了解。总有人要做的,那就由愚笨的笔者来抛砖引玉吧!

笔者小小的念想就是以后希望这个系列可以做到,新人进入办公室第一件事是配置完环境,第二件事情就是被领导叫到办公室说:你先熟悉熟悉环境,然后把小代的那个系列文章看了吧!

本文分三个部分来谈:

一、我国支付清算系统的演变过程

二、现代支付清算体系的基础架构

三、银行与第三方支付的清算设计

一、我国支付清算系统的演变过程

1.1 山西票号(现代银行的雏形)

中国在经历了清王朝康乾盛世之后,商品经济获得了较大的发展,货物流通种量增加,远足贸易业务扩大。加强了各地间商品交易往来联系,同时,市场规模对交易资金在异地和同城之间划拨清算提出更高要求。

****由于过去贩运货物都是运送现银,所以解决资金融通、异地汇兑的问题迫在眉睫。

在这样的历史背景下,一间叫“日升昌”的票号应运而生。它由山西商人雷履泰于公元1823年所创立。在此后的一百多年里,因其他山西商人仿效日升昌的模式,先后开设了三十多家类似的票号。


所以,当时的人们和后来的学者,将它们统称为山西票号。

票号以经营汇兑业务为主 ,采取总、分号“连锁经营”的模式,总号之外需要在各地广开分号。因此,分号机构遍布当时全国主要商业城市,异地可以存取款。

当客户到票号办理完汇款业务之后,会得到票号开出的汇票,客户可以凭汇票到票号的另一个分号兑出银子。分号给客户兑换之后,会先记内部账。

随着汇票在不同城市间流转,票号的分号之间又会形成债务、互相记账,然后定期会当面进行对账(清算)。

在此阶段,清算过程如下:

  • 支付指令发出:信息流,汇票+账本
  • 完成资金划拨:资金流,镖局运银

    到现代银行出现后,银行间的资金往来都逐渐基于底层支付系统进行资金结算、缴纳存款准备金等。我国支付系统的建设与发展经历了三个阶段:手工联行、电子联行和现代化支付系统。


1.2 第一阶段:手工联行(1989前)

(1)名词解释

联行 指同一家银行系统的异地各行处间的关系,也就是说同一家银行的总行及分支机构称为“联行系统”。

传票 指可以“传递”的票据,上面记录着账务信息。例如,早期在柜台办业务是分记账和出纳,记账做登记,客户登记完了需要到另外一个窗口的出纳那里存取现金。再如,异地之间的传递等。后来就演变成了会计凭证的代名词了。

存款准备金 是央行管控信用货币的一个重要手段,通过调整存款准备金率来控制银行需要缴纳的存款准备金,同时也是银行为企业进行支付清算时候的可动用头寸。 (注:这种头寸也是银行在进行投资,包括在进行银行间的回购等“资金交易”时,真正可以动用的那部分头寸)

举个简单的例子,A 银行怕 B 银行的客户在 A 这儿取钱之后,B 不认账。所以保险起见,A会要求B先在A这儿开户并且存一部分钱进来(作为“备付金”或“存款准备金”)。

那么,如果A 银行想与所有银行实现通存通兑,就必须在其它所有银行里都开设备付金账户。同理其它银行也只能这么做。这样每家银行都是一个清算银行,负责银行间的资金往来清算。

(2)联行信件和邮电局

1953年,人民银行建立了“全国大联行”的三级联行清算体系,开始按地区联行:县(市)级的县辖联行;省(区)内的省辖联行;跨省(区)的全国联行。各级联行负责辖内各金融机构之间的资金清算,全国联行通过人民银行总行清算。

改革开放后,随着金融体制和结算制度改革的深化,全国大联行不再适应社会发展。

1984年,中国人民银行专门行使中央银行职能之后,实行了“统一计划、划分资金、实贷实存、相互融通”的联行体制变革措施,全国联行清算体系也随之进行了重大改革。

此时,行内与跨行资金汇划方式如下:

  1. 行内:同一个银行的清算内部进行,总行和分支行构成一个联行系统,分行与分行之间的清算由总行负责。主要处理异地贷记、借记支付业务。
  2. 跨行:资金清算可以都在央行开立清算账户,由央行为商业银行统一清算,也可以各行直接清算。

这一时期,全国各地的银行间使用着一种叫联行信件的东西。


它是一个牛皮纸信封,正面写着收件行和寄件行的信息以及内容物数量,背面是大大的联行专用四个字以及贴邮票,里面放着一张张要告诉其他行交易信息的公文。

经加盖印鉴后在银行间传递,由专门的邮递机构负责,这也是当时邮电局(邮政电信分家前)的重要业务。

由此可见,整个过程基本都是手工处理,与明清时期的票号相比,并没有太大的改进。

虽然运行成本较低,但容易出现差错,且资金汇划效率依旧不高,导致占压在途结算资金较多,如异地间资金的汇划,少则10多天、多则半年才能完成资金到账。

1.3 第二阶段:电子联行(1989~2005)

(1)清算中心建成

随着邓总提出科学技术是第一生产力,各家银行引进计算机技术,解决因银行业务量的不断增加而导致资金使用效率、安全和经济发展的问题。

随后,银行开始使用计算机去登记手工处理的内容(也叫“会计电算化”),但整个业务处理模式没有变化。


1989年12月6日,央行发布了“关于改革联行清算制度的通知”。

1990年,央行清算中心建成,专门为金融机构提供支付清算服务。包括两级处理中心,国家处理中心(NPC)和城市处理中心(CCPC)两级处理中心,NPC全国只有一个,CCPC省会城市加上深圳各一个。

(2)全国电子联行系统EIS投产

1991年4月1日 ,全国电子联行系统(EIS)试运行。EIS连接了商业银行、央行、NPC和CCPC,通过计算机网络和卫星通信传输支付指令,通过清算中心完成资金流转。

1995年 ,针对电子联行覆盖面不广,速度较慢等问题,人民银行开始推行电子联行“天地对接”工程,构建地面网络。到2000年,基本实现电子联行的“天地对接”和业务到县。

借助全国电子联行系统,传票和凭证已变为加密后的电文,与纸质联行相比,进步巨大。客户的资金在途时间缩短到了一两天,大大提高了资金清算的效率,可以说是一个重要的里程碑。

1.4 第三阶段:现代化支付系统(2005~至今)

(1)CNAPS一代(大小额等)

1991年10月 ,中国开始着手建设中国国家金融通信网(CNFN),并基于此构建中国现代化支付系统(CNAPS)。第一代中国现代化支付系统由世界银行提供贷款,英国PA咨询公司承担咨询设计。

2002年 ,中国现代化支付系统的第一个子系统大额实时支付系统(HVPS)建成投产,用于处理同城和异地的商业银行跨行之间大额贷记业务。其采用支付指令逐笔实时发送,全额清算资金,跨行资金清算零在途。

2005年 ,小额批量支付系统(BEPS)投产,用于处理同城和异地纸凭证截留的借记支付业务,以及每笔金额在5万以下的小额贷记支付业务。其采用批量发送支付指令,即银行收集到若干笔交易后打一个包统一发到人行,定时清算。

(注:大额系统侧重于系统稳定、风险管理、资金转移的时效性;小额系统侧重于安全性,对系统数据吞吐量要求较高。)

2007年6月25日 ,央行推出的全国支票影像交换系统投产,在全国范围内上线运行。

2009年 ,电子商业汇票系统试点投产。至此,第一代中国现代化支付系统建成,全国支付清算系统的架构图如下:


这个阶段同联行时代的主要区别是,银行内部的清算通过其核心系统完成,不需要再通过联行体系,跨行清算通过CNAPS完成。支付指令通过网络传递到CNAPS,CNAPS在各银行的清算账户间完成资金划拨。

(2)CNAPS二代(超级网银等)

2010年8月30日,网上支付跨行清算系统正式上线,即超级网银。具有两大特色功能,一是接入机构不再限于银行,二是7*24小时实时到账,及跨行账户信息的实时查询,打通了国内各大银行网上银行之间的互联互通。

2013年10月6日,大额支付系统、小额批量支付系统都升级为第二代。CNAPS2架构图如下:

两代系统的一个主要区别就是CNAPS2采用了一点清算的模式。CNAPS各商业银行分支行都可以通过当地CCPC接入央行的支付清算体系,这就形成了多点接入;而CNAPS2支持一点接入、一点清算,并将逐渐完成多点清算到一点清算的过渡。

除了以上提到的系统之外,还有人民币跨境支付系统、中国银联银行卡跨行交易清算系统、城市商业银行汇票处理系统等等,分别处理了各类资金在不同银行间流动的需求,内容很多,在这里就不一一列举了。

** 二、现代支付清算体系的基础架构**

2.1 支付清算体系构成

俗话说得好:要想富先修路。这个道理在支付清算领域也是通用的,支付清算体系承载着各种金融交易,影响着整体运作效率,像客流、人流、物流一样。

支付清算体系由系列法规制度和相应的技术设施支持,及相关组织监督管理,确保发送支付指令能够完成资金的划拨。因此,支付清算体系是货币转移和债权、债务关系变更的一个有机整体。

谈到支付清算体系,就离不开支付清算的构成(也称金融市场的基础设施),用于保障金融市场的高效进行和整体稳定。它包含的内容比较广泛,除了支付清算系统,还有法规制度、会计标准、信用环境、反洗钱等。

支付体系的总体构成,如下图:


2.2 阅读报告时需要注意

支付清算系统介绍过了,指与央行直接或间接相关的系统。接着聊支付工具,从支行行业发展报告来看,有非现金的支付工具,包括票据、银行卡,和其他结算业务。

在其他结算业务中,又细分了电子支付,在银行是指客户通过网上银行、手机银行等渠道发起的支付业务。

而在非银行支付中,又提到了网络支付的概念,比如互联网支付,看起来和银行的电子支付一样,但其实是截然不同的概念。

因为有些交易走的是快捷(支付账户挂着银行卡),那么对于不同的支付工具,有些概念会重叠,导致数据统计口径有差异。

所以对于想要研究这块朋友,需要多加关注,了解背后的原因,尽量避免对统计口径误读或存在模糊的地方。

再如,支付监督管理日渐严厉,特别是个人信息保护和利用的问题,金融机构在竞争客户信息类的核心资产时,更要直面应当承担的责任和义务。

因此,仍需要不断的完善和改进。

又如,银行单位结算户在整个支付账户体系中发挥的作用在下降,个人结算账户相反,地位在不断上升。

那为什么单位账户下降?为什么C端个人账户上升?背后代表的是账户机制的变化?是客户行为的变化?还是企业行为的变化?

根据以上例子来看,简单的现象背后,其实可以延伸出很多有意思的研究。不再进行深入论述。感兴趣的小伙伴欢迎关注、点赞、留言发表下观点并转发。

** 三、银行与第三方支付的清算设计**

3.1 银行

银行清算有不同的分类方式,按功能可以分为实时清算和日终清算;按清算模式可以分为零级清算、多级清算等。

(1)零级清算

零级清算出现的背景 是因为早期的银行分支机构层级比较多(总行-省级分行-二级分行-支行),机构之间通过上存下借的头寸账户进行清算。

比如,A机构客户a向B机构客户b转了100块钱,假设一下A和B的上级机构都是C(总行),传统的记账分录如下:

借:a客户账户

贷:A机构头寸

借:A机构存放C机构头寸

贷:B机构存放C机构头寸

借:B机构头寸

贷:b客户帐

中间两组借贷分录是不同机构内部的,主要用于机构内部平账,那么在每天日终关门的时候可以很方便的计算出机构账有没有错误。

但是,机构层次的问题会导致锁定整个机构关系链路上的头寸账户,极大影响并发。

所以出现零级清算。

零级清算也称全行一本账,都是一家人,其总行、分行、支行和网点属于同级关系。不存在下级存放上级的实体头寸及上级存放下级的影子头寸(即备付金),虚拟的内部往来账户反映跨行间的资金相互占用关系。

  1. 优点:清算层次少了,清算速度会快些,简化了相关账务;能通过内部往来科目反应行内跨机构间的资金相互占用情况。

  2. 缺点:不使用于多法人的体系结构;需要借助内部转移资金定价(FTP),来满足分支行绩效考核等要求,以便于实现资金的最大化价值,举例如下。

    甲分行知道把一笔三年期定期的钱给到乙分行放贷款,存款给客户3%,给乙分行资金成本5%,乙分行放给客户8%,两家分行的资金收益很明显可以看到,但是在零级清算情况下不知道钱去哪里了,哪一笔多少利润,那么资金的价值怎么去衡量,就需要 ftp来算,来控制资金的流向,决定下周该以拉存款为主还是放贷款为主。

    (2)多级清算

    多级清算是指机构内从上往下按层级划分为总行、一级分行、二级分行、支行,每一个层级在上一级分行开设头寸户,清算时从下往上通过这个账户清算。

    一级清算也称分行一本账,指一级分行内部是一家人,之间是分开的。多法人时用的比较多,毕竟从每个法人的内部来看实现零级清算,跨法人通过一级清算会更合理,也更加符合监管对系统数据隔离的要求。

  3. 优点:可以实时反映行内头寸分布,清算层级更灵活,需要清算到哪一层就清算到哪一层。

  4. 缺点:是核算处理对系统的性能有一定影响,存在热点账户的隐患。

关于清算方式,就先介绍到这里,接着对比一下两种模式的特点和优势。

(3)模式对比

银行清算都是针对于行内而言的,行外需要通过人行备付金进行清算。因此,零级清算和多级清算两种模式与客户服务无关,属于银行内部管理的需要。

模式对比如下:


零级清算和多级清算在业务上各有特点,那在银行核心系统的设计上,应该尽可能兼容两种模式,让业务按实际需要来进行选择。

下面从业务功能和系统设计维度列举。

在业务功能上的关键点:

  1. 零级清算能切换到多级清算

  2. 行内多级清算头寸登记查询

  3. 会计引擎生成清算分录

  4. 相关报表做数据准备

    在系统设计上的关键点:

  5. 异步处理的一致性:多级清算的资金头寸分多个层次,需要保证分户帐和对应的总帐数据一致;清算模块与会计模块共用参数,需要同步维护且统一发布;需要保证异步传输数据过程中的一致性。

  6. 参数配置的灵活性:通过参数化配置实现零级清算到多级清算的切换,以及参数配置清算层级。

  7. 高内聚低耦合性:指功能封装的粒度,如零级清算到多级清算的切换。

    (4)常见问题

  8. 清算模块有哪些功能?

    1. 清算额度管理(如维护机构各清算业务的维度)
    2. 清算信息管理和维护(如清算中心维护直属下级的限额)
    3. 清算流动性查询(如查询清算账户余额、可用头寸等)
  9. 批量清算的主要功能?

    1. 将银行间或者系统内机构间资金的存欠关系的账务进行相应的汇总扎差。
    2. 再如,通过清算的记账处理,从底层机构往上清算,并出凭证清单。
  10. 机构层次导致锁表了?

    1. 延后更新是一种处理锁的方法。
    2. 如发生交易时不锁记录而是写个明细,而后用另一个后台程序串行更新账户,这适用于没有副作用(比如计算拆借,利息等)的情况。同样,批处理也需要日切前保证更新完上日的所有记录。

3.2 第三方支付

如今第三方支付已经成为了人们生活中不可缺少的一部分,但凡做交易,就会使用到第三方支付的服务。这就离不开支付系统的建设,就会涉及到支付清算。

在支付清算工作中,不同的清算主体对清算流程有着不同的要求,比如支付宝、微信两者是作为第三方托付机构。各公司根据其业务和公司发展的不同阶段,所设计的支付系统也会有所不同。先看看某最老牌的支付机构。

(1)处理模式和支付清算



如上图,我们可以看到分为支付系统和清算系统两部分(联机交易),主要流程如下:

  1. 通过记账指定给到账务系统里再做记账,联机记录交易流水。
  2. 异步做复式记账(提高交易性能,交易必须与账务分离)。

    (2)清算对账的过程


(3)清算的核对关系

好了,行内外支付体系就介绍完了。

因为第三方支付(支付宝、微信支付等)清算体系的具体实现,笔者没有接触,如果有误还请多多指正。有机会重写,有兴趣的话,敬请关注!欢迎交流。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论0 条评论

Ctrl+Enter 发表