银行核心系统之代发
昆明 · 横山沟
商业银行的业务按照资金来源和用途可以归纳为三类,分别是负债业务、资产业务和中间业务。中间业务是指商业银行接受客户委托,代为客户办理收款、付款和其他委托事项而收取手续费的总称。它具体产品丰富、种类繁多、资本占用低、风险小、稳定性好、持续性强等特点,是商业银行核心竞争力和创新能力的重要体现。
在互联网对银行生存空间不断挤压、存贷款传统业务日渐式微的大背景下,发展商业银行中间业务是现代银行业发展的必然趋势。通过这些业务实现“导流”功能,为商业银行拓展优质客户、增加客户粘性、加快产品和金融服务创新、把握市场先机、占据市场制高点提供了良好机遇。
上周和群友聊到代发的话题,进行了简单的交流,借此机会也帮自己梳理下行业积累及知识体系。本文只是一个引子,不过对从事银行业务研究与IT系统应用开发和运维同学有一定的价值,随手转发,给你我更多力量。
1、此文适合人群
银行从业人员,业务分析师,系统分析师,存款模块开发和运营的同学。
2、此文解决问题
对新人来说,学习完后对代发业务知识有初步认识,便于养成将零散的知识点串成一个整体的思维模式,有助于让自己在未来充满竞争的职场上更具竞争力;对职场人来说,通过学习代发业务建设和各个系统之间的交互,方便与各个系统技术人员讨论,以及在同业案例中作为基础参考使用,欢迎交流。
3、此文分为三大部分
一、代发的概述
(1)代发的发展历程
(2)代发的业务知识
二、代发的技术相关
(1)代发的产品架构
(2)数据库表结构设计
三、代发的业务流程举例
(1)签约协议
(2)代发工资
(3)明细查询
(1)代发的发展历程
国外商业银行代发业务的兴起,源于20世纪70年代的金融自由化和金融创新。其后,随着金融市场及环境的变化、信息技术不断发展、网络迅速普及,在监管法规变革、市场竞争加剧、科学技术进步等因素的共同作用下,促使商业银行包括 代收付业务在内的中间业务的快速发展。20世纪90年代开始,一些发达国家的银行中间业务收入占到银行总收入的30%以上。
国内商业银行代收付业务开始于20世纪90年代中期,相对国外起步晚、收入占比低、品种少,当时的业务仅仅局限于代发工资,经管如此,也产生了很好的社会影响。不仅为企业也减轻了不少的负担,减少对现金的保管,降低现金的丢失和损坏率,解放财务人员的工作压力 ,同时这也有利于银行维护企业客户关系,增加企业在银行的存款沉淀率。
随后,国内商业银行商业化程度的加深,银行业传统的金融服务(网点存取款、传统信贷等)已经不能满足客户和市场需求,加上市场利率走低、传统的利润来源——存贷款利差缩小,银行的盈利能力降低。与此同时,客户也希望在代发工资之外能够得到更多的增值服务,如代发养老金、奖金、福利费、部分财政拨款、佣金、保险行业的理赔业务等服务功能。代扣业务亦如此,由此可见,银行代发业务具有较强的业务带动能力和价值创造能力。
(2)代发的业务知识
代发业务是批量业务的一种,一方面可以减轻前台柜员的压力,另一方面,银行不但可以收取代理费,而且代发的资金总有一些是较长时间停留在银行的,无形中相当于银行吸收了一笔稳定的资金。因为代发工资业务是交易笔数、交易金额最大的代发业务,所以我们以代发工资为例,和大家一起来解析下常见的代发工资方式、介质、特点和优势、及业务流程。
★代发工资方式★
代发工资的方式有两种方式:柜面代发工资业务和网上银行代发工资业务。
(一)柜面代发工资业务
柜面代发工资业务是指委托单位编制符合规定格式(应包含委托单位员工姓名、账号、金额等信息)的代发工资明细电子文档通过专用邮箱传递给银行行,并通过汇款等结算方式将代发款项转入银行专用账户,由经办行进行代发工资业务处理。解读:
1.代发单位做工资表,传给银行;
2.代发单位将工资款汇入银行代发账户;
3.银行批量将工资按照工资表打给每位员工。
(二)网上银行代发工资业务
网上银行代发工资业务是指委托单位申请开通企业网上银行,通过企业网上银行进行代发工资业务处理。解读:
1.代发单位在代发银行开立企业网银;
2.代发单位自行通过网上银行发放工资。
★代发工资介质★
代发单位员工在银行代发工资一般有两类账户供选择:
(一) 银行借记卡
银行借记卡是银行发行的,集存款、取款、转账、理财、消费、中间代理业务等功能于一体的个人电子货币产品。解读:工资打进员工银行卡内。
(二) 直销银行电子账户
直销银行电子账户是客户通过直销银行网站、手机APP等渠道自助申请并经银行实名身份认证并核准后开立的个人人民币银行结算账户。解读:工资打进员工开立的直销银行账户内。
★代发工资的特点和优势★
(一)操作灵活、方便快捷
委托单位财务人员无需到网点办理,柜面代发工资只需委托单位与银行通过专用邮件发送加密文件即可,网上银行代发工资企业自己掌握办理时间,随时享受银行方便、快捷的服务。
(二)批量处理、入账及时
代发单位员工的工资将被批量处理,实时到达员工账户。
(三)信息保密、交易安全
企业与银行传递代发数据均通过加密文件,任何人都无法知道每名员工具体发放金额,包括银行工作人员。
(四)突破地域、全国统一
直销银行账户突破了地域限制,代发单位员工在全国各地均可通过自己的智能手机或电脑开立昆仑银行账户,单位都可以及时将工资、奖金发到员工手中。
★代发工资业务流程★
(一)签订协议
企业与银行就代发工资相关事宜签订协议。
(二)开户
企业职工按照银行实名制要求提供相关身份证件,银行为员工批量办理开户手续。
(三)资金划拨
企业按照协议约定时间将代发资金足额划转至指定账户,并通过加密文件传输员工代发工资明细。
(四)履约上帐
银行按照委托协议约定及企业提供的代发清单资料按时将应发金额足额转入每位员工的储蓄账户。
(五)客户取款
工资到达员工账户后,员工可自由办理取款等各项业务。
(1)代发的产品架构
对于代发业务,可以从核心系统、外围或第三方系统发起交易,并在核心系统内有完整的产品生命周期,包括签订协议、数据录入、合同管理、批量执行、解约等。按组成部分可分为接入层、应用层、交互层、原子层和系统层五个部分,每个层次处理相关的内容,上层调用下层提供的接口实现应用功能,下层不可以调用上层接口。功能框架图如下:
(一)接入层
接入层是实现行内所有交易渠道和第三方系统的接入处理,包括:前台柜面、网上银行、电话银行、短信平台等渠道接入处理。
第三方接入:实现行外所有第三方的接入处理。例如:银联、支付宝、微信。
内部公共接口处理:为前置系统、核心系统、信用卡系统等提供银行代发业务系统之间的网络连接管理和服务。
(二)应用层
应用层是从代发业务处理中抽取出来的最小处理逻辑单元,它们是组装各种应用组件和应用服务的基础。包括:签约协议、协议管理、数据录入、批量开户、批量代发、资金划转、自动清算、收手续费等。
签约协议:包括定期定额协议签订;
数据录入:包括手工数据录入,电子文件导入;
批量代发:根据录入数据批量代付。
(三)交互层
交互层包括各类业务处理组件以及在这些组件上面搭建起来的应用服务。
客户模块:负责管理客户的基本信息,登记客户签约的各类协议。
活期模块:提供活期账户余额、状态信息、存入和支取的处理。
(四)原子层
原子层指交易调度的公共处理,可以分3大部分,公共处理、业务逻辑处理和其他处理。包括:用户操作权限的管理、渠道管理、黑名单管理、参数管理、手续费管理、交易流水管理等。
(五)系统层
系统层指应用软件运行的系统软硬件平台。包括:硬件平台、操作系统、数据库、中间件等。
(2)数据库表结构设计
在系统的需求分析阶段就要考虑数据库表的设计,在开发某个功能时最先着手的也是数据库表结构设计,可以这么说,表结构的设计时开发某个功能或系统的基石。一个糟糕的表结构设计,可能会影响项目进度,甚至做很多无用功。
所以数据库表结构设计需要针对系统的特点和需求来规划,设计出规模适当、能良好反应数据关系、冗余数据少、存取效率高、能满足多种查询要求的数据库表。比如,对高频的库表可以考虑将表缓存到内存中,减少物理读写次数从而提高访问效率;再如,定义合理的索引,避免创建无用索引或需要使用索引但没有创建;又如,表数据存款可以考虑合理的分区设计,不仅对提升性能有益还能便于数据的管理;再如,表结构上增加预留字段,便于业务变更或新增等。
回到代发,设计代发模块或系统时包含几个大的方向需要考虑,这些内容决定了代发模块或系统的稳定性和可持续性。
主要是由来源和操作的多样导致了代发多样性特点,而代发多样性主要体现在代发批次号字段上,代发批次号字段可以理解为一笔代发业务的唯一标识。包括了代发处理中需要记录的信息,它的作用主要是用于与其他系统或模块沟通,并为下游系统提供信息依据。
★批次信息★
批次号作为代发业务识别的标识,一般按照某种特定规则生成,根据代发业务的增加进行自增,也有系统会使用批次类型(代扣 or 代发) + 批次号 + 批次子序号作为KEY。另外,在设计批次号的时候可以考虑批次号的无序设置,或是加入多种顺序号类型(防止有心人来估算代发业务量)。批次号后续用于登记交易明细和关联对手账号的交易信息。
★批次状态★
批次状态在下文中有描述。
★用户信息★
指代发的相关信息,包括对方户名、账号、证件信息。对于账号不对,姓名不符,证件信息无效的数据,交易报错。
★代发信息★
代发的基本主要有业务类型、代发方式、代发介质、扣款方账号/卡号、扣款币种、扣款次数上限、扣款金额上限、签约日期、到期日、节假日处理方法、处理次数、对账标志、交易返回码、机构号等。另外,金额由于比较特殊所以把金额独立在代发信息以外说,不过逻辑上其实都属于代发信息范畴。
★金额信息★
批次号对应的代发信息,除了要记录最终的金额,过程金额也需要记录。比如对方客户的优惠金额、应付金额、结算应付金额、总金额等。在后续的代发失败、冲正等场景都需要使用。
★时间信息★
记录代发业务每个状态节点的触发时间。
(1)签约协议
签约协议是指银行与合作单位线下签订代发协议。
签约流程说明:
1.银行与合作单位线下签订代发协议;
2.柜员在前端页面输入单位结算账号和协议要素,如业务类型、协议类型等;
3.触发嵌套查询交易将账号和协议信息上送核心,核心检查账户有效性后返回户名等基本信息;
4.同时检查账户是否已存在签约记录;
5.若已存在签约记录则要求重新录入协议要素信息;
6.若不存在签约记录则生成新协议记录,并自动创建一个协议号;
7.系统返回协议信息并打印后,交易结束;
8.如操作类型选择修改,则修改协议信息并更新记录;
9.如操作类型选择删除,则修改记录状态,并非物理删除。
需要注意的地方:
1.同一业务类型只能签约一份协议;
2.协议号的生成规则建议加上交易日期;
3.协议要素必输项的设置;
4.手续费应支持实时和非实时收取;
5.查询协议信息交易的上下级控制。
(2)代发工资
在代发工资之前通常会有批量开户的功能,这里就先不说了,感兴趣的小伙伴可以再聊,现在侧重点放在关键的核心流程上。
代发工资流程说明:
1.签约客户提供代发工资清单,可采用手工录入数据或上传文件的方式导入至系统;
2.系统判断清算方式,如果是内部账清算,则会将客户资金划转到代发工资内部专户中;
3.如果是单位结算账户清算,需先将资金划转到代发工资内部账户,然后进行代发工资数据录入;
4.联网核查后,进行预检查,如:账号、户名、证件信息的有效性、金额、账户状态、总金额、总笔数、输入数据是否存在非法字段等;
5.预检查结束后提交入账,交易完成后返回成功笔数、失败笔数及明细清单;
6.失败的记入待销账,并更新处理结果;
7.若全部失败或出现入错账,则撤销整个批次或手工调账;
8.若出现部分失败,则对没成功的记录重新发交易,生成新的批次;
9.打印入扣账通知书,更新批次状态,交易处理结束。
需要注意的地方:
1.关注代发工资清单的正确性,如账户、户名、金额、币种等;
2.冲正只能整个批次冲;
3.批次冲正不一定能冲成功;
4.失败的记录重发交易,金额不能超过待销账余额;
5.有的需求可能还要求整个批次有一笔失败就全失败。
(3)明细查询
明细查询一般是通过账号、开始时间、结束时间,查询某个时间段的代发基本信息,或是查询指定批次号的处理结果(成功、失败、成功笔数、失败笔数等)。查询结果主要包括:批次号、账号、户名、批次状态、笔数、币种、钞汇标志、总金额、流水号、代发专户或待销账信息。
参考文献及注释:
1.《银行代收付业务平台的设计和实现》
2.《昆仑银行代发工资业务介绍》
总结
随着相关政策法规日趋完善,网络支付的管理日趋规范化,银行系统代发的业务需求也在变化,随之代发系统的架构或功能也会随之变化,都是一个逐渐完善的过程,这篇文章也还有很多细节未提及。如果你想把代发的功能做好,还需要更加的深入每一个环节,远远不止这些,比如:代发文件加密流转、待销账余额退回、批量开户、资金划转、自动清算、收手续费、业务报表、短信提醒、网银操作记录查询、代发产品的竞品分析、收费情况等方面都需要了解,今天就先聊到这里。