支付對(duì)賬三部曲之資金對(duì)賬系統(tǒng)設(shè)計(jì)篇
上篇文章我們講到千萬(wàn)級(jí)對(duì)賬系統(tǒng)整體的系統(tǒng)架構(gòu)以及完整的業(yè)務(wù)流程,那今天這篇文章我們來(lái)聊下對(duì)賬結(jié)束之后流程 - 資金核對(duì)。
何為資金核對(duì)?
上篇文章聊到對(duì)賬,其實(shí)屬于業(yè)務(wù)明細(xì)對(duì)賬,即我方交易訂單與渠道明細(xì)的訂單的核對(duì),這個(gè)對(duì)賬過(guò)程需要逐筆核對(duì)。核對(duì)成功,代表雙方的訂單數(shù)據(jù)都沒(méi)有問(wèn)題。
既然成功了,對(duì)方需要把這筆錢給到我們。但是實(shí)際情況下,可能是為一些問(wèn)題,導(dǎo)致這筆錢最后沒(méi)給我們。
所以這個(gè)過(guò)程我們也需要核對(duì),這個(gè)核對(duì)過(guò)程就被稱為資金核對(duì)。
那資金核對(duì),需要拿應(yīng)收應(yīng)付與實(shí)收實(shí)付參與核對(duì),那什么是應(yīng)收應(yīng)付?什么是實(shí)收實(shí)付??jī)蛇厰?shù)據(jù)怎么獲取呢?
先不用急,下面文章會(huì)詳細(xì)解釋,我們先來(lái)看下資金核對(duì)整體流程。

資金核對(duì)整體流程其實(shí)與業(yè)務(wù)明細(xì)對(duì)賬流程類似,分為三部分:
資金數(shù)據(jù)收集 資金數(shù)據(jù)核對(duì) 資金數(shù)據(jù)差錯(cuò)梳理
資金核對(duì)過(guò)程,核對(duì)某個(gè)渠道某個(gè)商戶號(hào)實(shí)收實(shí)付與應(yīng)收應(yīng)付的數(shù)以參與核對(duì)數(shù)量會(huì)很小,所以整個(gè)過(guò)程都在對(duì)賬系統(tǒng)內(nèi)完成。
資金數(shù)據(jù)收集
上面我們說(shuō)過(guò)資金核對(duì)的數(shù)據(jù)分為兩部分:
應(yīng)收應(yīng)付 實(shí)收實(shí)付
那資金收集這一部分,其實(shí)就是對(duì)應(yīng)這部分?jǐn)?shù)據(jù)的收集。
實(shí)收實(shí)付數(shù)據(jù)收集
實(shí)收實(shí)付的錢,其實(shí)就是對(duì)方支付機(jī)構(gòu)/清算機(jī)構(gòu)清算給我們結(jié)算款,那這個(gè)實(shí)際對(duì)應(yīng)的是『銀行』賬戶實(shí)際資金的變動(dòng)。
『銀行』賬戶分為兩種,如果是一般公司,那這里『銀行』賬戶指的就是某家銀行對(duì)公賬戶。
那如果是支付公司,這里的『銀行』賬戶指的是備付金賬戶。
這兩類賬戶分別有兩種不同數(shù)據(jù)處理措施。
實(shí)收實(shí)付數(shù)據(jù)收集之后,存入銀行資金表,表結(jié)構(gòu)如下 :

關(guān)鍵字段如下:
unique_id 流水ID,用于標(biāo)識(shí)唯一資金流水信息 source ?用來(lái)標(biāo)記資金來(lái)源 settle_date 資金結(jié)算賬期 bank_no 銀行賬號(hào) debit_amount 借記金額 credit_amount 貸記金額 channel_code 渠道編碼 remark 摘要信息 opposite_bank_no 對(duì)手賬號(hào) merchant_no 渠道商戶號(hào)
channel_code 與 merchant_no 一般會(huì)有多個(gè)存在,所以我們?cè)趯?shí)收實(shí)付數(shù)據(jù)收集過(guò)程中,需要根據(jù)一定匹配規(guī)則,匹配指定的 channel_code 與 merchant_no。
另外上面 settle_date 為資金結(jié)算賬期,這個(gè)跟交易發(fā)生日期并不相同。
資金結(jié)算賬期一般為 T+1,那交易賬期為 T 日的交易,資金結(jié)算過(guò)來(lái)賬期將會(huì)為 T+1。
這么看比較難以理解,舉個(gè)例子,2022 年 1 月 7 日(周五)發(fā)生一筆 100 w 的交易,這筆交易賬期就是 2021 年 1 月 7 日。
由于這個(gè)渠道資金結(jié)算周期是 T+1,也就是說(shuō) 1 月 7 日,1 月 8 日,1 月 9 日的交易資金,將會(huì)在 1 月 10 日統(tǒng)一結(jié)算。
所以說(shuō)這里資金結(jié)算賬期將會(huì)為 2022 年 1 月 10 日。
銀行賬戶數(shù)據(jù)收集
銀行賬戶實(shí)際資金變動(dòng),最終都會(huì)體現(xiàn)在銀行結(jié)算賬單上,那我們可以通過(guò)下載結(jié)算賬單,解析獲取實(shí)際變動(dòng)資金信息。
這種方式需要運(yùn)營(yíng)人員手動(dòng)下載銀行賬單,再上傳賬單到對(duì)賬系統(tǒng),需要一定人工參與。
如果銀行賬戶不多,可以參用這種方式。
那如果銀行賬戶較多,可以考慮對(duì)接銀企直連,這樣可以通過(guò)對(duì)賬系統(tǒng)自動(dòng)拉取資金變動(dòng)詳情,減少人工參與。
下面以手動(dòng)下載對(duì)賬單為例,不同的銀行下載資金結(jié)算賬單格式都不太相同,系統(tǒng)上需要對(duì)這種情況做自適應(yīng)配置。
招行資金賬單格式如下(部分字段未顯示):

我們需要從賬單上收集如下數(shù)據(jù):
交易日期 銀行賬號(hào) 借方金額,可以理解為該銀行賬號(hào)轉(zhuǎn)出的金額 貸方金額,可以理解為該銀行賬號(hào)轉(zhuǎn)入的金額 摘要,轉(zhuǎn)賬附言 流水號(hào),這筆轉(zhuǎn)賬唯一標(biāo)識(shí)號(hào) 銀行余額
如果每個(gè)三方渠道綁定結(jié)算銀行賬戶信息都不一樣,那我們可以使用銀行賬號(hào),區(qū)分不同三方渠道應(yīng)收應(yīng)付數(shù)據(jù)。
但是實(shí)際操作過(guò)程中,我們可能使用同一個(gè)銀行賬戶接受多個(gè)不同三方渠道實(shí)收實(shí)付數(shù)據(jù) ,所以這里我們需要有一個(gè)匹配規(guī)則,當(dāng)某條流水匹配上這個(gè)規(guī)則的時(shí)候,那么這條流水就是某個(gè)三方渠道實(shí)收實(shí)付數(shù)據(jù)。
由于每個(gè)三方渠道資金轉(zhuǎn)入時(shí),銀行流水摘要都不太一樣。有些三方渠道,比如支付寶、微信可以設(shè)置轉(zhuǎn)入銀行的附言。
舉個(gè)例子,支付寶結(jié)算款我們可以設(shè)置為 支付寶xxx(商戶號(hào)4位尾數(shù))賬戶往來(lái)款。
微信結(jié)算款我們可以設(shè)置為 微信xxxx(商戶號(hào)4位尾數(shù))賬戶往來(lái)款。
通過(guò)這種方式,我們使用銀行摘要或則備注,當(dāng)做匹配規(guī)則。如果匹配成功,將其轉(zhuǎn)換為某個(gè)渠道某個(gè)商戶號(hào)實(shí)收實(shí)付數(shù)據(jù)。
備付金賬戶數(shù)據(jù)收集
上面通過(guò)銀行資金結(jié)算單的方式,只適合非支付機(jī)構(gòu)。
如果是支付機(jī)構(gòu),由于目前所有支付機(jī)構(gòu)資金集中存管在人行的備付金賬戶,簡(jiǎn)稱 ACS 賬戶,所以沒(méi)辦法使用上面這種方式。
不過(guò)好在目前人行給支付機(jī)構(gòu)開(kāi)通大額系統(tǒng)的權(quán)限,那所有通過(guò)大額系統(tǒng)出入的金額,支付機(jī)構(gòu)側(cè)都可以收到銀聯(lián)或網(wǎng)聯(lián)轉(zhuǎn)發(fā)的 ACS 動(dòng)賬通知。

通過(guò)這種方式,我們可以自動(dòng)監(jiān)聽(tīng) ACS 的動(dòng)賬消息,自動(dòng)收集應(yīng)收應(yīng)付數(shù)據(jù)。
人行 ACS 動(dòng)賬消息有多種不同類型的,支付機(jī)構(gòu)結(jié)算款信息,網(wǎng)聯(lián)/銀聯(lián)會(huì)通過(guò)調(diào)用 hvps.141.001.01-即時(shí)轉(zhuǎn)賬報(bào)文發(fā)起結(jié)算,
所以這里我們只需要監(jiān)聽(tīng)該報(bào)文類型即可。
我們從這個(gè)報(bào)文數(shù)據(jù)收集到以下數(shù)據(jù):
交易日期 消息流水號(hào) 備付金賬號(hào) 借記金額 貸記金額 對(duì)方賬號(hào) 備付金余額 摘要
每個(gè)渠道發(fā)起 ACS 動(dòng)賬摘要信息都不太相同,所以我們也可以使用摘要信息去做匹配,將其轉(zhuǎn)換為某個(gè)渠道某個(gè)商戶號(hào)實(shí)收實(shí)付數(shù)據(jù)。
一些典型 ACS 渠道摘要如下:
銀聯(lián)支付寶:支付寶條碼清算xxxx(商戶號(hào))_0106(賬期) 網(wǎng)聯(lián)微信:微信條碼清算xxxx(商戶號(hào))_0106(賬期) 銀聯(lián)無(wú)卡支付:0105(賬期)銀行卡清算
這里需要說(shuō)明一下交易資金流水賬期,一般來(lái)說(shuō)資金結(jié)算周期是 T+1,那么一般都是在 T+1 日那天結(jié)算過(guò)來(lái)。
也就說(shuō)我們收到 ACS 動(dòng)賬消息中交易日期就可以當(dāng)做是資金流水的賬期。銀聯(lián)/網(wǎng)聯(lián)微信、支付寶就是這種情況。
舉個(gè)例子,2022 年 1 月 7 日交易結(jié)算款,會(huì)在 2022 年 1 月 10 號(hào)結(jié)算。也就說(shuō) 2022 年 1 月 10 號(hào)將會(huì)收到一筆結(jié)算款 ACS 動(dòng)賬消息,那我們就可以直接把這個(gè) ACS 動(dòng)賬消息中賬期當(dāng)做資金結(jié)算流水的賬期。
但是有些渠道就比較特殊,比如網(wǎng)聯(lián)銀行卡。
網(wǎng)聯(lián)銀行卡結(jié)算周期也是 T+1,但是 T 日會(huì)有兩個(gè)結(jié)算場(chǎng)次。
T日9點(diǎn)的場(chǎng)次包含的是T-1日15:00到T日9:00到交易批次。T日15點(diǎn)的場(chǎng)次包含的是T日9:00到T日15:00到交易批次。其中9:00提供的交易批次算作第二場(chǎng)次。

那這里網(wǎng)聯(lián)銀行卡資金賬期就不能直接使用 ACS 動(dòng)賬消息中賬期,我們需要經(jīng)過(guò)計(jì)算,使用 ACS 動(dòng)賬消息賬期經(jīng)過(guò) T+1 計(jì)算。
舉個(gè)例子,2022 年 1 月 7 日收到網(wǎng)聯(lián)銀行卡 ACS動(dòng)賬消息賬期是 2022 年 1 月 7 日,經(jīng)過(guò) T+1 計(jì)算,網(wǎng)聯(lián)銀行資金賬期為 2022 年 1 月 10 日。
應(yīng)收實(shí)付數(shù)據(jù)收集
應(yīng)收應(yīng)付的數(shù)據(jù),跟據(jù)對(duì)方支付機(jī)構(gòu)提供的清算文件軋差計(jì)算匯總得出。
應(yīng)收應(yīng)付表結(jié)構(gòu)如下:

關(guān)鍵字段如下:
unique_id 唯一 id,內(nèi)部自己生成 settle_date 應(yīng)清算的賬期 bank_biz_date 業(yè)務(wù)賬期 biz_type 業(yè)務(wù)類型 trade_num 交易筆數(shù) channel_code 渠道編碼 merchant_no 商戶號(hào) remark 備注
這里有兩個(gè)賬期,bank_biz_date 代表業(yè)務(wù)賬期,settle_date 應(yīng)清算的賬期。
settle_date 應(yīng)清算的賬期是 bank_biz_date 代表業(yè)務(wù)賬期經(jīng)過(guò)賬期類型(T+1/D+1)經(jīng)過(guò)之后生成。
舉個(gè)例子, 如果渠道賬期類型是 T+1,那么如果應(yīng)計(jì)算賬期是2022 年 1 月 10 號(hào)(周一), 那數(shù)據(jù)如下所示:
| 業(yè)務(wù)賬期 | 應(yīng)清算賬期 | 業(yè)務(wù)類型 |
|---|---|---|
| 20220107 | 20220110 | 支付 |
| 20220108 | 20220110 | 支付 |
| 20220109 | 20220110 | 支付 |
下面數(shù)據(jù)匯總的數(shù)據(jù),我們根據(jù)應(yīng)清算賬期就可以查找這個(gè)賬期內(nèi)所有明細(xì)數(shù)據(jù)。
清算文件有兩種類型,第一種對(duì)賬明細(xì)文件就是清算文件,比如微信、支付寶。
還有一種就是提供對(duì)賬明細(xì)文件,也提供清算文件,比如網(wǎng)聯(lián)銀行卡,這種就需要使用清算文件計(jì)算。
對(duì)賬明細(xì)文件應(yīng)收應(yīng)付數(shù)據(jù)匯總
如果微信、支付寶這類對(duì)賬明細(xì)文件就是清算文件,這種比較簡(jiǎn)單,我們只需要解析對(duì)賬文件,軋差匯總數(shù)據(jù)即可。
這一步可以放到對(duì)賬明細(xì)業(yè)務(wù)流程中,按照業(yè)務(wù)類型匯總得出以下數(shù)據(jù):
| 業(yè)務(wù)類型 | +/-(收入/支出) |
|---|---|
| 支付 | + |
| 支付手續(xù)費(fèi) | - |
| 退款 | - |
| 退款手續(xù)費(fèi) | + |
| 提現(xiàn) | - |
| 提現(xiàn)手續(xù)費(fèi) | - |
| 退匯 | + |
清算明細(xì)文件應(yīng)收應(yīng)付數(shù)據(jù)匯總
網(wǎng)聯(lián)銀行卡這類可以單獨(dú)提供清算文件的渠道,我們就需要使用清算文件匯總計(jì)算。
這里以網(wǎng)聯(lián)銀行卡為例,網(wǎng)聯(lián)會(huì)在 T 日日終兩個(gè)小時(shí)之后生成資金結(jié)算信息,文件中包含 T-1 日15 點(diǎn)到15 點(diǎn)交易相關(guān)信息。
清算文件格式如下:

樣例文件如下:

我們可以根據(jù)上面分項(xiàng)列表統(tǒng)計(jì)不同業(yè)務(wù)類型的匯總金額。
資金數(shù)據(jù)核對(duì)
應(yīng)收應(yīng)付與實(shí)收實(shí)付兩端數(shù)據(jù)都收集完成之后,我們就可以開(kāi)始資金數(shù)據(jù)核對(duì)。
這個(gè)核對(duì)過(guò)程相比對(duì)賬核對(duì)就比較簡(jiǎn)單。
我們可以根據(jù)資金賬期+渠道編碼+渠道商戶號(hào)查找兩端數(shù)據(jù)。
舉個(gè)例子,微信渠道資金結(jié)算賬期 20220111應(yīng)收應(yīng)付明細(xì)數(shù)據(jù)如下:
| 業(yè)務(wù)賬期 | 資金賬期 | 業(yè)務(wù)類型 | 金額 |
|---|---|---|---|
| 20220110 | 20220111 | 支付 | 100w |
| 20220110 | 20220111 | 支付手續(xù)費(fèi) | 20w |
| 20220110 | 20220111 | 退款 | 10w |
| 20220110 | 20220111 | 退款手續(xù)費(fèi) | 2w |
軋差計(jì)算應(yīng)收應(yīng)付金額如下:
應(yīng)收應(yīng)付金額=支付金額-支付手續(xù)費(fèi)-退款+退款手續(xù)費(fèi)=100w-20w-10w+2w=72w
再查找20220111實(shí)收實(shí)付明細(xì)數(shù)據(jù)如下:
| 資金賬期 | 借記金額 | 貸記金額 |
|---|---|---|
| 20220111 | 0w | 72w |
軋差計(jì)算實(shí)收實(shí)付金額=貸記金額-借記金額=72w-0w=72w
如果兩端軋差之后數(shù)據(jù)相同,那么資金核對(duì)成功。
資金數(shù)據(jù)差錯(cuò)處理
有些情況應(yīng)收應(yīng)付金額與實(shí)收實(shí)付金額不等,核對(duì)不能成功,這種情況排除系統(tǒng)問(wèn)題之后,一般都是當(dāng)天賬期實(shí)收實(shí)付金額導(dǎo)致。
這種情況可能原因是,比如銀聯(lián)無(wú)卡渠道,可能因?yàn)橛脩敉对V盜卡,銀聯(lián)側(cè)將這筆錢退給用戶。這就導(dǎo)致當(dāng)天結(jié)算款缺少一部分。
網(wǎng)聯(lián)銀行卡出金退匯,這就會(huì)導(dǎo)致第二天清算款增加。
這些情況比較多,需要運(yùn)營(yíng)人員排查這部分原因。運(yùn)營(yíng)人員排查到具體原因之后,可以在后臺(tái)增加差錯(cuò)調(diào)整記錄。

差錯(cuò)調(diào)整記錄增加之后,實(shí)收實(shí)付金額將會(huì)重新計(jì)算:
實(shí)收實(shí)付金額=實(shí)收實(shí)付金額-借記調(diào)整金額+貸記調(diào)整金額
如果調(diào)整之后兩端金額相等,資金核對(duì)成功。
總結(jié)
資金核對(duì)過(guò)程相比對(duì)賬核對(duì),不管業(yè)務(wù)流程,還是系統(tǒng)設(shè)計(jì)上都簡(jiǎn)單很多。
但是資金核對(duì)業(yè)務(wù)規(guī)則相對(duì)來(lái)說(shuō)還是表復(fù)雜。這里對(duì)于剛接觸的同學(xué),重點(diǎn)了解資金核對(duì)業(yè)務(wù)規(guī)則,資金結(jié)算賬期 T+1 計(jì)算規(guī)則,這些都比較繞。
講到這里,我們以及了解業(yè)務(wù)明細(xì)對(duì)賬以及資金對(duì)賬,后面我們?cè)賮?lái)聊下對(duì)賬三部曲最后一部-差錯(cuò)處理。
參考
http://www.woshipm.com/pd/4427117.html
