圖解支付賬務(wù)系統(tǒng)入門
“支付賬務(wù)系統(tǒng)入門,開啟金融科技之門?!?在現(xiàn)代金融科技領(lǐng)域,支付賬務(wù)系統(tǒng)是核心組成部分。然而,其復(fù)雜的概念和流程往往讓初學(xué)者望而卻步。本文將以圖解的方式,深入淺出地為您揭開支付賬務(wù)系統(tǒng)的神秘面紗。
這篇文章主要從研發(fā)的視角講清楚:賬務(wù)相關(guān)的一些基礎(chǔ)概念,賬務(wù)系統(tǒng)核心的職責(zé),以及一些關(guān)鍵模塊的設(shè)計(jì)要點(diǎn)。
主要內(nèi)容:1)復(fù)式記賬理論簡要介紹。2)賬務(wù)系統(tǒng)產(chǎn)品架構(gòu)圖。3)從最基本的支付說起。4)記賬全流程。5)其它重要知識點(diǎn)。
進(jìn)入正題前,先講個(gè)小故事。
幾年前一個(gè)狂風(fēng)暴雨電閃雷鳴的下午,老板把負(fù)責(zé)賬務(wù)系統(tǒng)的技術(shù)經(jīng)理炒了魷魚,并把賬務(wù)系統(tǒng)及對應(yīng)的研發(fā)小組劃到我這里,于是除了風(fēng)控系統(tǒng)仍然在大數(shù)據(jù)團(tuán)隊(duì)(彼時(shí)還沒有算法團(tuán)隊(duì)一說),整個(gè)支付系統(tǒng)包括收單結(jié)算、收銀支付、渠道、賬務(wù)等全部劃歸到我這里。
那時(shí)距離我進(jìn)入第三方支付行業(yè)已經(jīng)過去5個(gè)春秋,但我對賬務(wù)的理解仍處在只知道“有借必有貸,借貸必相等”的程度。為不辜負(fù)老板的信任,也為了不讓小弟們看不起,我決定認(rèn)真學(xué)習(xí)賬務(wù)。過了一個(gè)月,恰好重構(gòu)的新支付核心上線灰度切流,發(fā)生日切不過,為校驗(yàn)學(xué)習(xí)成果,我身先士卒深入進(jìn)去查原因,查了2天,終于……很不幸,木有查出原因,仍是依靠小弟們解決了問題。
這是我和賬務(wù)系統(tǒng)之間的一個(gè)小插曲。
1. 前言
我在支付行業(yè)呆了十年有余,一直從事研發(fā)相關(guān)工作,從個(gè)人以及身邊同事的經(jīng)驗(yàn)看,除了從事賬務(wù)系統(tǒng)研發(fā)的工程師外,大部分支付研發(fā)工程師對賬務(wù)都了解甚少,主要原因仍然是賬務(wù)系統(tǒng)的業(yè)務(wù)門檻往往大于技術(shù)門檻,比如很多支付研發(fā)工程師甚至不了解復(fù)式記賬。所以有必要從研發(fā)工程師的角度來介紹一些賬務(wù)系統(tǒng)入門的知識。
需要說明的是,不同支付公司內(nèi)部設(shè)計(jì)的賬務(wù)系統(tǒng)必然存在差異,但有些基本原則大家都會(huì)遵守,比如復(fù)式記賬、賬戶管理、記賬、對賬、會(huì)計(jì)中心、日切等。本次只談這些公共的內(nèi)容,大家可以結(jié)合各自公司的系統(tǒng)實(shí)現(xiàn)或內(nèi)部文檔辯證地看。
需要說明的是,純概念或術(shù)語不好理解,所以我會(huì)把相關(guān)的概念融合到示例中去講,但里面夾雜了很多我個(gè)人的理解,可能和專業(yè)的教科書存在部分描述不一致的情況。
2. 復(fù)式記賬理論簡要介紹
賬務(wù)系統(tǒng)的理論基礎(chǔ)是復(fù)式記賬法。如果對于復(fù)式記賬沒有任何了解,建議先找網(wǎng)上一些公開的優(yōu)秀資料先做初步的學(xué)習(xí)。
如果能看懂下面的場景描述,說明已經(jīng)掌握了復(fù)式記賬的初步知識。
以用戶通過支付平臺使用招商銀行CMB支付500塊為例做個(gè)簡要說明。
假設(shè):支付平臺同樣使用CMB做為收單行,在CMB開設(shè)有備付金賬戶。
涉及的支付平臺內(nèi)部賬戶:
賬戶類型
賬戶
備注
借記賬戶
應(yīng)收-渠道-CMB
簡單判斷賬戶類型的方法:
恒等式一:資產(chǎn)=負(fù)債+所有者權(quán)益
恒等式二:利潤=收入-費(fèi)用
恒等式三:資產(chǎn)+費(fèi)用=負(fù)債+所有者權(quán)益+收入
左邊的【資產(chǎn)】、【費(fèi)用】是借記類賬戶,右邊的【負(fù)債】、【所有者權(quán)益】、【收入】是貸記類賬戶。
貸記賬戶
應(yīng)付-過渡-網(wǎng)關(guān)過渡戶
應(yīng)付-平臺托管-商戶待結(jié)算
應(yīng)付-平臺托管-商戶余額
手續(xù)費(fèi)收入-商戶-消費(fèi)
記賬步驟(只以支付成功并結(jié)算到商戶余額做示例,渠道清算相關(guān)記賬后面講):
階段
操作賬戶
金額
第一步
資金從渠道到網(wǎng)關(guān)過渡戶
借:應(yīng)收-渠道-CMB
貸:應(yīng)付-過渡-網(wǎng)關(guān)過渡戶
500
第二步
扣除手續(xù)費(fèi)
借:應(yīng)付-過渡-網(wǎng)關(guān)過渡戶
貸:手續(xù)費(fèi)收入-商戶-消費(fèi)
10
第三步
網(wǎng)關(guān)過渡戶到商戶待結(jié)算賬戶
借:應(yīng)付-過渡-網(wǎng)關(guān)過渡戶
貸:應(yīng)付-平臺托管-商戶待結(jié)算
490
第四步
結(jié)算給商戶
借:應(yīng)付-平臺托管-商戶待結(jié)算
貸:應(yīng)付-平臺托管-商戶余額
490
說明:
支付系統(tǒng)的記賬一定是復(fù)式記賬法。內(nèi)部開設(shè)了很多賬戶和科目。
【借記類】賬戶:資產(chǎn),應(yīng)收款等;
【貸記類】賬戶:負(fù)債,所有者權(quán)益,應(yīng)付款等;
借貸方向簡要公式(不太嚴(yán)謹(jǐn),但是夠用):
【借記類】賬戶(如資產(chǎn),應(yīng)收款),【增加】為【借】,【減少】為【貸】;
【貸記類】賬戶(如負(fù)債和所有者權(quán)益,應(yīng)付款),【增加】為【貸】,【減少】為【借】;
復(fù)式記賬的專業(yè)術(shù)語很多,這里只摘錄幾個(gè)重要的說明:
復(fù)式記賬法定義:對每項(xiàng)經(jīng)濟(jì)業(yè)務(wù)按相等的金額在兩個(gè)或兩個(gè)以上有關(guān)賬戶中同時(shí)進(jìn)行登記的方法。
記賬原則:有借必有貸,借貸必相等。
記賬依據(jù):會(huì)計(jì)恒等式:1. 資產(chǎn) = 負(fù)債 + 所有者權(quán)益;2. 利潤 = 收入 – 費(fèi)用。
賬戶:具有一定格式和結(jié)構(gòu),能夠用來連續(xù)、系統(tǒng)、全面的記錄反映某種經(jīng)濟(jì)業(yè)務(wù)的增減變化及其結(jié)果。
科目:同類財(cái)務(wù)交易的分類,比如資產(chǎn)、負(fù)債、所有者權(quán)限、收入或費(fèi)用等都屬于科目。一般科目會(huì)分為多級。
賬戶和科目的區(qū)別:科目只有名字,賬戶包括結(jié)構(gòu)和格式,每個(gè)賬戶對應(yīng)一個(gè)特定的科目。
3. 賬務(wù)系統(tǒng)產(chǎn)品架構(gòu)圖
拆解記賬之前,我們先看一個(gè)典型的賬務(wù)系統(tǒng)具備哪些產(chǎn)品能力。
賬務(wù)系統(tǒng)一般說來需要負(fù)責(zé)管理賬戶、余額、記賬、對賬、清結(jié)算、會(huì)計(jì)核算、報(bào)表等能力。大致如下:
后面單獨(dú)再開文章詳細(xì)介紹設(shè)計(jì)思路。
4. 從最基本的支付說起
我們以最典型的電商購物舉個(gè)例子(只是舉例):小明使用PayPal在拼多多電商(海外)通過多多錢包(海外)支付了50美金。
經(jīng)過簡化后的交互圖如下:
說明:
持牌的第三方支付機(jī)構(gòu)和電商是獨(dú)立的法律主體,所以多多錢包和多多電商是互相獨(dú)立的,需要走獨(dú)立的結(jié)算。
為突出重點(diǎn),中間省略了很多中間機(jī)構(gòu),比如花旗通過清算網(wǎng)絡(luò)才能轉(zhuǎn)賬到匯豐,清算網(wǎng)絡(luò)先略過。
為簡化描述,還有幾個(gè)假設(shè):
假設(shè)拼多多電商選擇結(jié)算到銀行卡。還有一個(gè)場景是電商選擇結(jié)算到余額,然后自己手動(dòng)提現(xiàn)。
假設(shè)單幣種場景,跨幣種場景還涉及到外匯兌換。
下面我們針對這個(gè)典型場景做進(jìn)一步的細(xì)化來講解賬務(wù)相關(guān)的概念。
5. 記賬全流程
5.1. 支付記賬完整順序圖
說明:
圖中只畫了正常場景,像明細(xì)對賬出現(xiàn)差異(長短款)、賬單對不平(渠道少打款或多打款)等場景沒有畫出來。
日切相關(guān)的在后面單獨(dú)說明。
給商戶結(jié)算也在后面單獨(dú)說明。
記賬方案也會(huì)在后面單獨(dú)說明。
上面只寫了順序,為更清楚描述各系統(tǒng)的參與,下面單獨(dú)再拆解幾個(gè)核心步驟,并加渠道網(wǎng)關(guān)、支付引擎等子系統(tǒng)的交互。
5.2. 渠道扣款成功
說明:
對賬中心監(jiān)聽渠道網(wǎng)關(guān)的消息,注冊我方流水,用于后續(xù)和渠道的對賬。
賬務(wù)中心記賬:DR:應(yīng)收-渠道待清算,CR:應(yīng)付-網(wǎng)關(guān)過渡戶。因?yàn)楝F(xiàn)在有可能收單域的訂單已經(jīng)被關(guān)閉,所以這里還不能直接【CR:應(yīng)付-商戶待結(jié)算】。
每條記賬明細(xì)都會(huì)對應(yīng)記錄一條會(huì)計(jì)分錄。
5.3. 收單訂單推進(jìn)成功
說明:
收單成功后,需要把手續(xù)費(fèi)扣出來。
5.4. 明細(xì)對賬
說明:
渠道本身也會(huì)收手續(xù)費(fèi),還可能幫政府代收稅費(fèi),實(shí)際應(yīng)清算金額=支付金額-渠道手續(xù)費(fèi)-稅費(fèi)。
5.5. 賬單對賬
說明:
賬單對賬和明細(xì)對賬不一樣的地方在于,明細(xì)對賬是支付渠道PayPal給的清算文件,賬單對賬是備付金銀行收到支付渠道打款后給出的賬單文件。
在記賬模塊先是記銀行頭寸的賬(收到銀行賬單,說明錢已經(jīng)到賬),再記應(yīng)清算的賬。
有些場景沒有窮舉說明,比如渠道應(yīng)清算49.50USD,實(shí)際只到賬40USD,這時(shí)仍有9.50USD屬于應(yīng)清算。
5.6. 結(jié)算打款
說明:
上述是商戶結(jié)算到卡場景。
各公司的內(nèi)部戶編制可能有所不同。
6. 其它重要知識點(diǎn)
6.1. 賬戶
在賬務(wù)系統(tǒng)中,通常包含以下幾種賬戶類型:
客戶賬戶:對客可見。包括:對私的個(gè)人客戶賬戶,對公的商戶賬戶。
內(nèi)部賬戶:對客不可見。包括:頭寸、手續(xù)費(fèi)收入、過渡戶(也稱中間戶)等。
6.2. 實(shí)時(shí)記賬與緩沖記賬
一般來說,客戶賬戶的記賬需要是實(shí)時(shí)的,比如用戶充值、提現(xiàn),商家提現(xiàn),用戶退款等。
這些賬戶如果不做實(shí)時(shí)記賬,一來有損用戶體驗(yàn),二來有資損風(fēng)險(xiǎn)。比如用戶充值100塊,如果延時(shí)不到賬,用戶可能會(huì)投訴。如果提現(xiàn)不實(shí)時(shí)記賬,用戶有可能重復(fù)提現(xiàn)成功。如果退款不實(shí)時(shí)記賬,有可能在退款場景下被透支。
假設(shè)記賬需要30ms,一個(gè)賬戶最高也就只支持30多TPS的記賬請求,對于一些高并發(fā)的賬戶(也稱為熱點(diǎn)賬戶)一定是性能不足的。這個(gè)時(shí)間可以使用緩沖記賬,以提高性能。開通緩沖記賬的,通常是內(nèi)部賬戶或允許商戶透支的流出場景。
緩沖記賬通常就是先記錄流水,然后起定時(shí)任務(wù)去撈取流水,匯總后進(jìn)行記賬。前提是一定要做好資損防控。
除了緩沖記賬外,還有拆分賬戶的方式來解決熱點(diǎn)賬戶問題。
6.3. 記賬方向
說明:
賬戶類型與借貸方向,相同為加,相異為減,也就是所謂的:DD+,DC-,CC+,CD-。
示例:用戶提現(xiàn)100元,記賬如下:
DR:用戶余額(負(fù)債類賬戶)100
CR:提現(xiàn)過渡戶(負(fù)債類賬戶)1006.4. 會(huì)計(jì)科目與會(huì)計(jì)分錄
會(huì)計(jì)科目與賬戶、會(huì)計(jì)分錄的關(guān)系如下:
說明:
科目有多級科目,所以有個(gè)自關(guān)聯(lián)。
賬戶分為客戶賬戶和內(nèi)部賬戶,二者的結(jié)構(gòu)有一些小的區(qū)別,比如內(nèi)部賬戶一般不會(huì)被凍結(jié),但是客戶賬戶可以被凍結(jié)。
會(huì)計(jì)科目示例:
說明:
一般支付系統(tǒng)使用三級科目就已經(jīng)足夠。部分特別復(fù)雜的系統(tǒng),可能會(huì)用到五級科目。
為便于理解,上面的示例做了很大的精簡,各公司內(nèi)部對科目的編制差異可能會(huì)比較大。
下面是一個(gè)典型的支付系統(tǒng)會(huì)計(jì)科目的部分截圖示例。
6.5. 記賬方案
有了賬戶和會(huì)計(jì)科目,發(fā)生一筆交易時(shí),如何讓系統(tǒng)自動(dòng)去記賬?這個(gè)是記賬方案做的事。其中一個(gè)解決方案就是給不同的交易場景制定不同的交易碼,通過交易碼來驅(qū)動(dòng)記賬。
下面是一個(gè)典型的支付系統(tǒng)的記賬方案示例(部分截圖)。
6.6. 會(huì)計(jì)日與日切
會(huì)計(jì)日,也稱為會(huì)計(jì)結(jié)算日或賬務(wù)結(jié)算日,是支付平臺在會(huì)計(jì)周期中進(jìn)行賬務(wù)處理和結(jié)算的特定日期。比如在分布式環(huán)境下,各機(jī)器可能存在時(shí)間差,一筆交易在零點(diǎn)時(shí)有可能跨天處理,如何判斷一筆交易歸屬于哪天,就依據(jù)會(huì)計(jì)日來計(jì)算。
所謂日切,簡單理解就是切換到下一個(gè)會(huì)計(jì)日。主要做的工作:
借貸試算平衡。
父子科目試算平衡。
總賬試算平衡。
日、月、季度、年匯總。
會(huì)計(jì)日變更。
日切試算平衡核心邏輯:
借方發(fā)生額 = 貸方發(fā)生額
借方余額 = 貸方余額
期末余額 = 期初發(fā)生額 + 發(fā)生額
父科目累積額 = 子科目累積額
6.7. 三層對賬體系
第一層是信息流對賬。我方流水和銀行清算文件的流水逐一核對。可能會(huì)存在長短款情況。
第二層是賬單對賬。就是把我方流水匯總生成我方賬單,然后把銀行流水匯總生成銀行賬單,進(jìn)行對賬。可能會(huì)存在銀行賬單和我方賬單不一致的情況,比如共支付100萬,渠道分2次打款,一筆98萬,一筆2萬。
第三層是賬實(shí)對賬。就是我方內(nèi)部記錄的銀行頭寸和銀行真實(shí)的余額是否一致??赡艽嬖谖曳接涗浀念^寸是220萬,但是銀行實(shí)際余額只有200萬的情況。6.8. 記賬服務(wù)與會(huì)計(jì)中心簡要關(guān)系
為便于理解,這里做了極簡化處理。
記賬服務(wù)負(fù)責(zé)記賬,主要關(guān)注賬戶余額變動(dòng)等;會(huì)計(jì)中心負(fù)責(zé)會(huì)計(jì)核算,主要關(guān)注點(diǎn)在于會(huì)計(jì)分錄、科目匯總、會(huì)計(jì)報(bào)表等。實(shí)際情況會(huì)比這個(gè)復(fù)雜。7. 結(jié)束語
賬務(wù)子系統(tǒng)負(fù)責(zé)為支付平臺管理所有資金,是支付平臺最核心的子系統(tǒng)之一。相關(guān)會(huì)計(jì)報(bào)表是公司經(jīng)營決策的依據(jù),也是合規(guī)申報(bào)相關(guān)報(bào)表的基礎(chǔ)。理解賬務(wù)子系統(tǒng)的核心概念,能幫助我們構(gòu)建一個(gè)完整的支付系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的理論基礎(chǔ)。
本文從研發(fā)工程師的視角,介紹了賬務(wù)子系統(tǒng)一些最核心的概念,希望能為大家在學(xué)習(xí)賬務(wù)系統(tǒng)相關(guān)知識時(shí)能提供一些有益的參考。
本文由人人都是產(chǎn)品經(jīng)理作者【隱墨星辰】,微信公眾號:【隱墨星辰】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于 CC0 協(xié)議。
支付賬務(wù)系統(tǒng)的主要功能包括處理支付請求、記錄交易詳情、管理賬戶余額、生成對賬單等。系統(tǒng)的目標(biāo)是確保所有支付活動(dòng)的準(zhǔn)確性和完整性