资金视角看支付系统架构设计
02
03
账户开立。 账户信息管理。 冻结解冻。 账户销户。
第一层:明细对账,我方的【交易明细】和网联的【清算明细】进行逐笔明细对账,对账的结果生成一个【汇总账单】 第二层:资金对账,【汇总账单】和备付金银行入账后会生成的【银行账单】进行汇总级的对账 第三层:余额对账,今天的银存日终余额 = 昨天银存日终余额 + 今日发生额
网联完成清算后,实体资金才会进到备付金账户 备付金账户的钱,需要T+1结算后给商户(实际上这里也需要等网联清算完成才能真正到账)
每次都记两个户,一个是借记(D)一个是贷记(C),这是因为记账过程用的是复式记账法,需要遵循“有借必有贷,借贷必相等” 内部户有个账户类型的属性,标在表格里了 D 表示借记账户,C 表示贷记账户。账户类型与记账方向,同号为增,异号为减 记账全部完成后,最终备付金头寸+5,商户余额+5,这与预期相符。
更细粒度管理资金的流转,通过记账可以知道一笔资金现在到了哪个环节。 通过账户沉淀资金,可以推断是否存在资金风险,例如“应收待清算”账户长期沉淀大量资金,说明可能有合作机构未完成资金清算。 记账本身就是一种资金风险的防控手段,例如有人篡改了账户余额,通过余额和账务流水核对就可以发现。 出财务报表。
借贷平衡校验。每一笔账需要保证满足“有借必有贷,借贷必相等”。 对内部户进行归类,形成一颗多叉树结构,叶子节点是所有的内部户,不断向上汇总。我们把非叶子节点都称作“科目”,父科目的总额=子科目汇总金额。 在总账上,必须满足借方余额=贷方余额。也就是会计恒等式:资产=负债+所有者权益。
04
最直观的感受,好像啥都变多了:主体、银存、币种、时区……例如银存,在国内可能开两三个备付金账户就够用了,到了跨境业务,至少各大洲都要开设银存,还得覆盖至少10多个大币种。 对资金的时效性更敏感了。在国内大家已经对资金立即到账已经习以为常,就连跨行转账都能做到秒级到账。跨境就不一样了,资金通常需要经过多个国家或地区,资金链路越长,到账时效也就越长。时效性对用户体验的影响是巨大的。 需要了解每个地区当地的支付习惯,我觉得在所有复杂性里面,localization是最复杂的一个环节。每个国家,他们的消费习惯和支付习惯完全不一样,如果只是照搬国内的业务模式,大概率会失败。 需要应对不同的监管政策。例如货币的出境限额,经营牌照,备付金的存管方式,数据隐私性要求等。 需要敏锐地观察和应对国际局势,包括但不限于:xx 国大选、地缘冲突、政治博弈、货币政策等。我曾经历过美联储加息,通过购买理财“躺着把钱赚了”,也经历过俄乌冲突一夜之间卢布暴跌,俄罗斯账户全面冻结。是的,就是这么刺激! 技术架构的复杂度大大增加。做国内业务可能只需考虑同城多机房,再复杂一点可能需要考虑 X 地 X 中心,国际业务中就不得不考虑每个国家对数据出境的政策要求,政策会影响机房的建立和部署,还会进一步影响容灾策略和性能,例如在对客业务中跨洲的调用延时是绝对无法接受的。
05
二维码是怎么来的,微信中国钱包能识别吗?我们假设这个二维码是“微信支付-韩国”分公司提供的,韩国分公司在这里承担的是收单的角色 小明拿着微信中国钱包去扫码,钱包的背后也得有家公司,假设叫“微信支付-中国”,这里是发卡的角色(关于发卡和收单,我会专门另开一期单聊) 境内支付还涉及网联清算
06
尽量把账户开到大银行上,因为国外的银行是真的会倒闭。 出于风险考虑,不要把钱都放到一个篮子里。 根据需要开设多币种账户。
小明用微信中国钱包付了 5CNY,这部分根据境内支付行业规范,资金要先经过央行备付金账户。 要出境的资金还需要经过跨境专户。 在哪里做外汇兑换,也就是把 5CNY 换成 1000KRW?可能有几种方式: 在境内直接兑换成 KRW 再出境到韩国。 CNY 先出境变成离岸人民币CNH,在香港或新加坡兑换成 KRW,这种情况为了更便于开展业务,就需要在香港或新加坡注册公司,暂且称为“微信支付-香港”和“微信支付-新加坡”。 或者有没有可能 CNH 先进入韩国,在韩国境内兑换成 KRW?这种基本不太考虑,因为韩国可能有货币政策的限制,而且香港和新加坡本就是亚洲的金融中心,在外汇方面有更多的自由度。 当然还有一种方式就是委托境外机构代发,但要这么说的话这篇文章就没有意义了。咱举例说明,就是要举最详细的例子,全流程都做。
外汇报价(FX Quote)。用户在扫码支付的那一刻,就需要进行一次外汇报价,根据查询的即时汇率再进行一些加点报给用户,这样用户才能在支付时看到应付 5 CNY。 外汇交易(FX Trading)。外汇交易的模式有很多种,在此不长篇大论,仅说本例,交易分成两阶段: 外汇锁价。因为汇率是实时变化的,小明扫码支付了5CNY,在此刻预期是能兑换1000KRW,但如果不锁价,发生汇率波动,真正兑换的时候也许只能兑换980KRW,也可能兑换1020KRW,若不愿意承担风险,通过锁价机制就可以保证交易时不多不少能换回1000KRW。 外汇交易。这一阶段是真正触发交易,按照约定的锁价汇率,把 CNY 付给兑换机构(如 BOCHK),兑换机构把相应的KRW兑换回来。 头寸管理(Position Management)。在小明支付成功那一刻,意味着公司账户收入 5CNY(或者说是待收),同时也意味着公司对711产生一笔 1000KRW 的待付,虽说有锁价机制,但只要没真正去做兑换,这个风险敞口就一直存在。头寸管理就是要把风险敞口或风险水位控制在一定范围内,通过制定合理的交易策略,及时地完成外汇交割,消除风险敞口,这一过程通常也称作“平盘”。
网联的清算特殊一些,叫做第三方清算模式。网联是第三方清算机构,负责支付渠道(工行)和 WeChatPay CN 之间的清算。 WeChatPay CN,HK,KR 之间存在比较复杂的委托兑换和委托代付关系: Wechat Pay CN 的视角:要付给 KR 1000KRW,但是我手里只有 5CNY,因此要委托 WeChatPay HK 做兑换,兑换后的KRW不急着要回来,后面清偿时再委托代付就好了。 Wechat Pay HK 的视角:收到一笔 CNY-KRW 的兑换请求,并且把兑换完的 KRW 付出去。 Wechat Pay KR 的视角:我只知道 WeChatPay CN 要付给我1000KRW,至于钱是从哪里来的我不关心,所以我感知不到 WeChatPay HK。
资金流的箭头不代表记账顺序,只代表记账的借贷关系,顺序用数字标出来了。 虚拟资金流就是物理资金流的展开,虚拟资金流的第一个节点和最后一个节点与物理银存对应,中间节点表示资金所处的中间态。
跨境支付的资金交割链路比较长,中间任意环节卡住了都有可能影响资金交付时效,毕竟每个商户入驻都签订了结算协议的,未在约定的结算周期内完成结算,轻则影响商户的现金流,重则影响平台的声誉,可能面临赔偿 某些场景下或许会通过垫资的方式加快资金交付效率,提升产品的竞争力。
对资金流量的预测。流动性管理需要熟悉全局的资金流动情况,并根据历史数据的分析,预测未来的资金流量 对资金水位的监控。跨境业务需要在全球不同国家和地区开设许多银存账户,流动性需要监控每个账户的资金水位,识别潜在的流动性短缺 要具备全球流动性调拨机制。例如现在需要紧急调拨1亿韩元进入韩国,可能某些银行在非工作时间,无法受理大额跨境请求,这时就要考虑从其他时区调入资金 跨境业务还需多考虑一个外汇因素。避免因某个币种外汇储备不足导致业务受影响,但也不能储备过多的外汇,需承担汇率波动风险
07
📢📢欢迎加入腾讯云开发者社群,享前沿资讯、大咖干货,找兴趣搭子,交同城好友,更有鹅厂招聘机会、限量周边好礼等你来~
(长按图片立即扫码)