從資金視角,看支付系統架構設計(上)
提起在線支付,大家一定不陌生,這個行業發展了快 20 年了,最近又推出了 “碰一碰” 支付等創新形態。但絕大多數人對支付的瞭解仍只浮在水面上,作爲支付行業從業者,今天來帶大家看看冰山下面的部分:歡迎走進 “資金管理” 這個神祕領域。
01
支付和資金的關係
這裏所說的 “資金” 或“資金管理”不是特指某一個團隊或某一款產品,你可以理解爲支付一定要與錢打交道吧?**我暫且把在支付流程中與錢相關的東西都放進一個黑盒子裏,爲了便於敘述,給這個黑盒子取一個名字叫 “資金平臺”,再一步步解密黑盒子裏放了哪些東西。**在正式解密之前,我們先看看這個黑盒子(“資金平臺”)在支付流程中是如何與上下游交互的。
舉個例子,小明口渴了,進 711 買了一瓶水,用微信支付向收銀員付了 5 元錢。
整個流程大致上像是這樣:
首先這個資金平臺是服務於支付公司(比如微信支付)的,理論上每個支付公司都應當有個資金平臺,架構上或許多少有些不同,但底層原理上是一致的。
那麼資金平臺需要做些什麼呢?如果只從最淺顯的角度看,應該至少完成這 1 件事:把小明支付的 5 元錢轉給 711。
問題就來了,就這麼簡單,支付系統不能自己做嗎,爲什麼一定要交給資金平臺?直覺告訴我們,銀行、微信支付、711 屬於不同的體系,用戶的錢不會乖乖的自己飛到 711 的賬戶裏,這裏面一定還有許多 “貓膩”,不着急,下面就來一點點解密。
在此之前先插個題外話:上圖向銀行發起扣款看起來也是與資金相關的動作,爲什麼不是資金平臺來完成?這是因爲扣款是支付主鏈路的關鍵環節,支付強依賴扣款結果來確認支付狀態,而且扣款指令只是完成了與銀行的信息流交互,並未真正發生資金流轉。
02
資金平臺的職責
2.1 備付金賬戶管理
首先還是要回答這個問題:錢是怎麼從用戶銀行卡轉到 711 的?
銀行當然不會直接對接 711,中間需要經過微信支付進行中轉,**根據央行的規定,第三方支付的資金都需要受到兩聯(銀聯、網聯)監管,微信支付需要在央行開設一個備付金賬戶,**所有未結算的資金都會沉澱在備付金賬戶裏。
資金平臺需要負責對備付金賬戶進行管理,包括:
-
賬戶開立。
-
賬戶信息管理。
-
凍結解凍。
-
賬戶銷戶。
實際上一家支付公司不可能只開一個備付金賬戶,在斷直連以前賬戶都是直接開在商業銀行的,斷直連後也仍有許多場景需要在商業銀行開戶。理論上說只有開在央行的賬戶才叫備付金賬戶,大家平時交流說習慣了會把普通賬戶也叫做備付金賬戶。
不管怎麼樣,這些賬戶裏都是有存錢的,都是物理賬戶,爲了便於管賬,每一個物理賬戶還會在公司內部開設一個虛擬 “影子戶” 或者叫“頭寸戶”。
2.2 (客戶)賬戶管理
小明作爲微信支付的用戶,在微信支付裏有個錢包賬戶,就是我們平時看到的這個:
每個用戶在資金平臺內都有一個 “餘額戶”,充值、收到紅包時賬戶就會加錢,使用餘額支付時賬戶就會扣錢。
小明買水如果用銀行卡支付,就不涉及餘額戶的變動;如果用餘額支付,則餘額 - 5。
所謂 “客戶賬戶” 就是指提供給客戶使用的賬戶,包括個人用戶和商戶。
與 “客戶賬戶” 對應的叫做“內部戶”,內部戶不需要開放給客戶使用,只用於內部記賬。
至此,我們可以用一張圖描述資金賬戶體系:
這裏的賬戶體系所包含的,是企業自己需要管理的賬戶。像小明自己在工商銀行開設的賬戶則不屬於管轄範圍。
2.3 結算
有了上面的準備工作後,我們就可以開始結算了。
結算,就是把資金結給商戶的過程。
根據商戶入駐時簽訂的合同,每個商戶都有相應的結算週期和結算方式。
-
結算週期:例如實時結算,T+1 結算
-
結算方式:結算到卡,結算到餘額
假設 T+1 結算,整個過程看起來像這樣:
如果結算到餘額,直接商戶餘額 + 20,如果結算到卡,根據行業規範要求信息流需要經過銀網聯,再由銀網聯進行統一清算。
2.4 對賬
資金平臺很重要的一個職責是保證資金安全。我們先來看看小明支付的 5 元是怎麼進到微信支付的備付金賬戶的:
前面說到第三方支付的資金受到兩聯監管,每一筆交易都需要上報,網聯在這裏面還承擔了資金清算的職責。它會算清楚工商銀行和財付通的應收應付賬款,一定時間內進行彙總後一次性打款。
可以看到清算的工作交給了網聯,支付公司只是被動接受消息和收到賬款,雖說網聯是國家隊,但有沒有極小的可能性它也會算錯?例如程序員寫了一個 bug 之類的?
爲了避免這種情況發生,我們就需要進行資金對賬,使用標準的三層對賬模式:
-
第一層:明細對賬,我方的【交易明細】和網聯的【清算明細】進行逐筆明細對賬,對賬的結果生成一個【彙總賬單】
-
第二層:資金對賬,【彙總賬單】和備付金銀行入賬後會生成的【銀行賬單】進行彙總級的對賬
-
第三層:餘額對賬,今天的銀存日終餘額 = 昨天銀存日終餘額 + 今日發生額
三層對賬保證了每一筆明細、每一筆賬款的準確性。
不只是小明的付款會有對賬,前面提到的結算過程也會對賬,只要發生了實體資金變動的都需要進行對賬。因此有時也把對賬稱爲賬實覈對。
2.5 記賬
上面的支付過程有個小問題,如果是 T+1 結算,從小明支付成功到真正結算還隔着老長時間,在這中間買水的 5 元錢去哪了?
這就要分實體資金和虛擬資金來說明了。
實體資金,也就是真正意義上的錢在哪,這個要看網聯的清算週期
-
網聯完成清算後,實體資金纔會進到備付金賬戶
-
備付金賬戶的錢,需要 T+1 結算後給商戶(實際上這裏也需要等網聯清算完成才能真正到賬)
實體資金的流轉看起來像這樣:
可以看到實體資金的流轉並不總是那麼實時的,有一些 “真空期”:錢在路上了,至於到哪了咱也不知道。爲了能更好地管理整個資金的生命週期,降低資金風險,就需要引入虛擬資金流,也就是我們所說的 “記賬”。
上面提到小明支付成功後,但還未結算前,資金就沉澱在 “商戶待結算” 裏面,類似於 “商戶待結算” 這樣的賬戶,就是內部戶。
我們嘗試還原一下完整的記賬過程,注意記賬是以支付公司的視角去記的(假定商戶是結算到餘額):
細心觀察可以發現,記賬過程有這樣的特點
-
每次都記兩個戶,一個是借記 (D) 一個是貸記(C),這是因爲記賬過程用的是複式記賬法,需要遵循“有借必有貸,借貸必相等”
-
內部戶有個賬戶類型的屬性,標在表格裏了 D 表示借記賬戶,C 表示貸記賬戶。賬戶類型與記賬方向,同號爲增,異號爲減
-
記賬全部完成後,最終備付金頭寸 + 5,商戶餘額 + 5,這與預期相符。
上面提到了實體資金流,那是否有虛擬資金流?
當然有,我們按照借記指向貸記的順序,把所有相關的內部戶串聯起來,就形成了虛擬資金流。
那麼記賬有什麼用呢?
-
更細粒度管理資金的流轉,通過記賬可以知道一筆資金現在到了哪個環節。
-
通過賬戶沉澱資金,可以推斷是否存在資金風險,例如 “應收待清算” 賬戶長期沉澱大量資金,說明可能有合作機構未完成資金清算。
-
記賬本身就是一種資金風險的防控手段,例如有人篡改了賬戶餘額,通過餘額和賬務流水覈對就可以發現。
-
出財務報表。
2.6 會計覈算
現在我們知道了一筆支付的錢怎麼收進來,怎麼結出去,怎麼通過記賬、對賬來防範和識別風險,還有什麼沒做的嗎?
確實還有一件事:如果賬記錯了怎麼辦?不僅會影響資金風險防控的效果,財務報表也會不準確,影響經營決策。
在會計學上是通過會計覈算的方式來驗證賬本是否有問題。
簡單來說,會計覈算就是在做覈對和統計。有這麼幾件事:
-
**借貸平衡校驗。**每一筆賬需要保證滿足 “有借必有貸,借貸必相等”。
-
對內部戶進行歸類,形成一顆多叉樹結構,葉子節點是所有的內部戶,不斷向上彙總。我們把非葉子節點都稱作 “科目”,父科目的總額 = 子科目彙總金額。
-
在總賬上,必須滿足借方餘額 = 貸方餘額。也就是會計恆等式:資產 = 負債 + 所有者權益。
感興趣的可以進一步搜索【資產負債表】、【利潤表】、【現金流量表】,本文就不再繼續延伸了。
用一張圖總結一下在支付流程中資金平臺的職責和作用:
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/cbf8C-f039qSgzXT6xMGGQ