全面解構支付系統設計——你不可不知的會計核心
要理解支付系統的設計,會計學知識是必要前提。
一、復式記賬
第一個問題:如何理解賬務系統單邊記賬,會計系統復式記賬?
有些公司內部賬戶之間轉賬都采用復式記賬法,如充值、提現交易,他們在賬務系統都記單邊流水,等和銀行對賬后,在會計系統復式記賬。
1. 以充值為例
用戶充值:秋秋支付寶充值100 元,那么在賬務系統里面單邊記賬,主要就是如下的流水信息:
若有N 多條充值的流水,在賬務系統中會記錄客戶分戶N 多條賬務流水,并實時更新外部分戶的流水和分戶余額。
同時發送該充值業務數據到會計核心,會計核心根據賬務系統提供的會計科目做一條客戶帳分戶的貸方分錄,日終匯總分別借記一條工商銀行待清算款充值賬戶的分錄,同時更新相應科目下的內部分戶余額,在會計系統中會對應的生成會計分錄流水:
銀行對賬后 ,對賬結果觸發會計系統會計分錄:
二、會計基礎入門
第二個問題:如何理解會計中的“借”和“貸”?
首先明確一個公式:資產= 負債+ 所有者權益
規律:
- 當秋秋收到現金時,都是借:我的現金 貸:其他科目;說明我的現金時借方表示增加。
- 當秋秋借別人錢時,負債增加了,借:其他科目 貸:我的負債(屬于別人的錢),說明我的負債是貸方表示增加。
- 當秋秋辛苦攢下的積蓄,所有者權益增加了,借:其他科目 貸:屬于我的財產,說明屬于我的財產是貸方表示增加。
三、會計科目和賬戶
1. 會計科目
- 會計科目按其反映經濟內容的不同一般分為資產類、負債類、所有者權益類、收入類、費用類、利潤類六大類科目。由于支付機構主要核算客戶資金和備付金資金賬戶,沒有直接采用所有者權益類、收入類、費用類和利潤類科目,僅僅設置資產類、負債類、共同類(待清算),嚴格遵循會計恒等式。
- 資產類科目余額方向一般在借方,負債類科目的余額一般在貸方,共同類既具有資產也具有負責屬性,屬于雙重科目。
2. 科目層級
為了既能夠提供總額核算,又能提供明細核算,會計科目一般更具具體需求設置層級。
按照提供指標的詳細程度不同,可以分為總分類科目、明細類科目。總分類科目就是我們說的總賬科目或者叫一級科目,是總體反映會計要素具體內容的科目。
明細分類科目,也就是明細科目,是對總分科目所含內容做詳細分類形成的會計科目。
明細科目根據會計核算和經營管理需要還可設置二級、三級科目。沒有下級科目的會計科目為葉子科目,即底層科目,底層科目下按照實際賬務處理設置會計賬戶,會計賬戶與資金賬戶一一對應。只有葉子科目下才能開立賬戶,非葉子科目下不可以開立賬戶。
3. 科目和賬戶的關系
- 資產類科目記在借方表示增加,記在貸方表示減少;
- 負債類科目記在借方表示減少,記在借方表示增加;
- 所有者權益記在借方表示減少,記在貸方表示減少;
- 費用類科目記在借方表示增加,記在貸方表示減少;
- 利潤類科目記在借方表示增加,記在貸方表示增加。
4. 交易流程與資金平衡
5. 內部戶和科目的關系
6. 會計科目平衡關系
- 在一級科目110銀行存款下,針對不同銀行可以設置多個二級科目:11001 A銀行存款科目,11002? B銀行存款科目;
- 在每一個銀行存款二級科目下,根據收付業務目的的不同,又可以設置多個三級科目:1100101 A銀行存款_收款專用科目,1100102 A銀行存款_付款專用科目,1100103 A銀行存款_歸集專用科目。
7. 每個類目的科目平衡關系
- 葉子科目余額= 該科目下所有賬戶余額綜合;如:1100201 科目余額= 1100201科目下所有賬戶的余額總和。
- 科目匯總余額= 該科目下所有葉子科目余額總和;如:110 一級科目余額= 110 一級科目下所有葉子科目的余額總和。
- 總賬余額= 該科目下所有同級科目匯總余額總和;如:資產類總賬= 資產類所有科目的余額總和。
201 和 202 科目屬于客戶賬科目,其余科目均屬于內部賬科目,即 201 和 202 科目下的賬戶屬于客戶賬,其余科目下的賬戶屬于內部賬。
四、會計資金平衡關系
采用復式記賬法,保證會計核算資金的平衡關系,復式記賬法是指對發生的每一項經濟業務,都以相等的金額,在相互聯系的兩個或者兩個以上賬戶中間同時進行登記的方法。
公式①:資產 (借方余額)= 負債(貸方余額)+ 待清算(借方余額)
公式②:原始平衡關系:資產 (0)= 負債(0)+ 待清算(0)
支付機構的資金管理體系是在銀行資金管理體系基礎上建立了,為了能清晰的理清資金的流入與流出關系,保證收支兩條線;支付機構一般會在每家合作銀行分別開設收款專用戶和付款專用戶。
其中收款專戶是專門用來歸集充值流入的資金,付款專戶專門用來歸集提現流出的資金。
1. 充值業務資金流動機制
當充值業務發生時,銀行直接從客戶的銀行賬戶進行扣款,但是并不會立即向支付機構的銀行賬戶入賬,而是先掛入銀行內部過渡賬戶,在日終處理時統一講當日累計充值資金一次性向支付機構收款專業銀行賬戶入賬。
2. 提現業務資金流動機制
當提現業務發生時,支付機構并不是立即通知銀行扣款,而是在每日定時將一段時間內同一家銀行申請提現的請求匯總提交給銀行,由銀行負責從支付機構付款專用銀行賬戶進行扣款,向客戶的銀行賬戶入賬。
3. 資金調度機制
為了保證每家銀行的收款專戶資金得到統一的調度支配,同時滿足每家銀行付款專戶的資金需求,支付機構會指定唯一的一家合作銀行開設統一歸集賬戶,每日將各家銀行收款專戶內充值業務資金匯總歸集到這個唯一的歸集賬戶內,并根據各家銀行付款專戶提現業務需要支付的資金,從歸集賬戶向各家銀行付款專戶劃轉調撥資金,確保提現支付成功。
支付機構在銀行的資金管理體系的基礎上,從自身的資金管理需求出發,搭建了自己的資金調度體系,其資金流基本和銀行類似,典型的資金體系如下:
由于支付機構內部待清算充值款項是當晚核心系統日終后才能結轉到銀存收款賬戶后,才能進行調撥,而每日下午在產生給銀行的提現數據時,就需要保證銀存付款專戶上的資金到位,這樣資金調撥就會存在時間差,為了解決這個時間差問題,于是內部設置了一個調撥戶進行資金中轉。
調撥專戶是一個虛擬的賬戶,不是與真實資金賬戶對應的賬戶,余額方向可以是借方或貸方。每日在向銀行提交提現數據前,先內部從銀行收款賬戶進行調撥,如果由于時間差原因收款賬戶資金余額不足,則直接從調撥專戶上調撥資金到收款賬戶,再從收款賬戶向付款賬戶調撥。
資金調撥專戶上的缺口部分需要在日終結轉時予以軋差抹平,即現將待清算充值資金結轉到調撥戶,再從調撥戶結轉到銀行存款收款賬戶。
五、會計驅動的入賬機制
賬務系統作為會計系統的前置,一般的業務請求都是由賬務系統先完成記賬再向會計系統發送請求進行會計記賬。
但是有兩項特殊業務是會計系統獨立處理,并是由會計系統向賬務系統發起請求進行最終賬務記賬處理的,這就是涉及銀行資金結算的充值、提現業務的待清算賬戶單邊歸總記賬和日終的會計結轉記賬。
1. 充值業務在會計系統中單邊匯總的流程
2. 提現業務在會計系統中單邊匯總的流程
六、會計日終處理
1. 日終前的賬務準備階段
向對賬中心通知會計日終處理開始。
針對充值業務和提現業務員的日間單邊記賬進行匯總,完成待清算款項的匯總單邊記賬。
通知對賬中心日終對賬,并獲取對賬中心返回的銀行對賬結果數據。
根據各家銀行充值業務的對賬結果數據,匯總結轉各銀行待清算充值資金到各銀行存款賬戶(若有資金調撥,則結轉到資金調撥賬戶)。
對于有資金調撥的銀行,根據充值業務的對賬結果數據,匯總結轉各家銀行資金調撥資金到各銀行存款賬戶。
根據提現業務的對賬結果數據,匯總結轉各銀行待清算提現資金到各銀行存款賬戶。
因為資金調撥專戶需要在日終時歸零,所以對于差額部分需要軋差記賬,即結轉各家銀行資金調撥余額到各家銀行存款賬戶。
2. 日終的軋差與匯總處理階段
檢查所有賬戶當日會計發生額是是否借貸相等,即借方發生額=貸方發生額,若不相等,則自動登記軋差金額的會計分錄,保證借貸發生額平衡,對于導致借貸發生額不平的原因事后查詢解決。
對賬戶的會計分錄按借貸進行匯總,同時根據各賬戶上日余額和當日的發生額計算得到每個賬戶當日余額。
按照科目對科目賬戶的會計分錄進行匯總得到科目當日發生額,同時根據各科目上日余額和當日的發生額計算得到當日科目余額。
3. 日終的平衡檢查和日切階段
- 平衡檢查主要保證借方科目余額等于貸方科目余額;
- 科目總分檢查保證下級科目余額總和等于對應的上級科目余額;
- 會計日余額表日切主要保證每日的賬戶余額數據得到保存;
- 更新會計日,保證下次日終處理的是下一個會計日。
七、會計結算業務參數的配置與管理
會計系統作為核心重點負責清算、結算會計平衡的系統,在每增加一家銀行時,都需要配置相關的會計結算關系。
會計系統的日間記帳處理包含兩種模式:即時模式和緩沖模式,具體采用何種模式由賬務系統觸發時決定。
即時模式需要會計系統嚴格按照賬務系統發送的指令進行會計記帳處理;
緩沖模式需要會計系統根據相關的參數配置進行會計記帳處理,一般日間都是單邊的會計記賬處理,如充值與提現業務。
日間會計系統根據參數配置僅記錄客戶帳的變化部分,不記錄內部賬的變化部分,內部賬的變化部分在日終時根據相關參數和日間的單邊賬務記錄,進行分類匯總后再分別記帳處理。
1. 會計業務相關參數包括以下部分內容
針對日間所有的充值類交易代碼(含充值 4003、充值補賬 4023 )、提現類交易代碼(含提現 5004 、提現補賬 4022 、充退 4104 )操作,其下每一個子交易碼 sub_trans_code 對應的每一個涉及該業務的 title_code 科目代碼都需要配置一條對應的參數記錄,來確定日間該科目下的該交易代碼進行怎樣的單邊會計記帳處理。
參數重點說明該科目該交易記帳的方向、是否需要匯總記帳、是否需要發送對帳中心處理、是否需要 cache ;如 400301 交易代碼,業務涉及 20100 1個人賬戶科目和 2002001 公司賬戶科目,則需要對應的兩條參數記錄;具體配置如下:
日終批量處理時,有一步是專門針對緩沖記賬的處理,會計系統會根據參數表中充值、提現相關的每一個子交易碼 sub_trans_code 對應的銀行代碼 bank_type 不同,分類統計日間的單邊會計記賬數據,按照匯總后的數據會計系統單邊記賬處理;完成緩沖記賬的剩余部分。
如 400301 交易代碼,日終時按照參數表中的銀行代碼分別統計日間 400301 交易的單邊會計記錄,產生另一邊的待清算戶的會計記帳記錄。
日終批量處理時,有一步是專門針對銀行存款結轉的,即將經過對帳的資金從待清算賬戶結轉到銀行存款賬戶,以保持與銀行真實資金變化的一致。
會計系統會根據與銀行的對賬結果數據進行結轉記賬處理,參數表中記錄了每家銀行從待清算戶到銀行存款戶進行結轉的具體記賬參數中充值;因為存在兩種結算方式,所以存在兩套記賬參數:
- 從待結算資金戶結轉到銀行存款戶的會計記帳參數;
- 從待結算資金戶結轉到資金調撥戶的會計記帳參數;
- 從資金調撥戶結轉到銀行存款戶的會計記帳參數。
當前的業務規則表包括字段如下:
會計業務規則在整個會計核心中起著非常重要的作用。會計核心的幾個重要功能(記錄分錄,發送對賬中心數據,匯總記賬,日切結轉)中,都有他的用處。目前來講,會計規則主要有三個地方應用:
- 日間生成分錄:這部分規則叫做會計分錄規則。
- 日切匯總記賬:這部分規則叫做會計匯總規則。
- 日切資金結轉:這部分規則叫做會計結轉規則。
會計匯總規則和會計結轉規則同屬于會計流轉規則。
2. 日間生成分錄
在日間過程中,會計核心主要負責把賬務請求轉化成分錄要素并記錄下來,同時根據需要發送給對賬中心。在這過程中, 會計分錄規則起如下作用(左邊是賬務請求已知信息,右邊是通過會計分錄規則得到的信息):
通過會計分錄規則的轉化,就可以知道是否要進行匯總記賬,從而決定是記單邊分錄還是也要記錄待清算方科目的分錄。可以知道會計要素中的銀行是從賬務請求的哪個字段取。
也可以知道是否要發送給對賬中心,有了規則得到的這些信息,再加上能從賬務請求直接拿來的會計要素(如:賬戶,科目,金額,會計日,借貸方向),就可以生成分錄,并發送給對賬中心。
從能夠目前的會計業務規則表中的數據來看,這部分規則的使用如下:其中藍色部分作為請求部分,黃色部分作為會計業務規則的產出部分。
3. 日切匯總記賬
在日切過程中,需要把充值、提現等業務的多方分錄進行匯總,得到一方分錄,并記錄下來。會計匯總規則在由多方分錄轉化成一方分錄時,起如下用途:
通過會計匯總規則的轉化,得到一方分錄的賬戶,科目和借貸方向要素,再加上其他一些會計要素(SubTransCode,會計日等),就可以生成一方分錄了。
從目前的會計業務規則表中的數據來看,這部分規則的使用如下:
其中藍色部分作為請求部分,黃色部分作為會計業務規則的產出部分。
4. 日切資金結轉
在日切結轉過程中,需要把已清算款或調撥戶結轉成銀行存款。這些結轉所使用規則叫做會計結轉規則。日切資金結轉有兩種情況:
(1)待清算結轉
對賬中心對賬完畢之后,在日切過程中,需要把待清算數據結轉成銀存或調撥戶,所以需要建立一套會計結轉業務規則,來約束如何從待清算結轉到銀行或調撥戶。
在結轉過程中,他是依賴會計結轉規則的如下參數來查找規則:
根據已清算匯總數據( pac_gather_daily?)得到的SubTransCode,TitleCode,Remark(=SubTransCode ),從會計結轉規則中得到兩條規則,一條是存放待清算方分錄規則,一條是存銀存方(或調撥方)分錄規則。我們根據這兩條規則,然后在根據其他分錄要素( SubTransCode , 會計日等),就可以生成兩條分錄。
同時要說明得是:這種情況的結轉規則,都是成套的。
成套的含義是指用相同的 SubTransCode,BankType,Remark 取查找會計規則,如果能找得到,就是兩條,這兩條是成套的。
就目前的會計業務規則表中的數據來看,他的用途如下:(其中藍色部分作為請求部分,黃色部分作為會計業務規則的產出部分。綠色部分是給調撥結轉用的)
(2)調撥結轉
調撥結轉是日切過程中,把調撥戶的錢結轉到銀存賬戶上,會計也需要配置這些結轉規則來結轉:
把 SubTransCode 和 Remark 都是結轉子交易類型( 701105 )的規則查找出來。對應如果有Memo 值,則表示結轉規則,同時 Memo 保存得是銀存方的科目代碼,根據科目代碼找到銀存方的規則。從而獲得銀存方分錄需要需要的 titleCode , ?iwAccountNo , ?借貸方向。
八、案例分析
1. 打款業務流程圖
2. 支付交易時序圖
3. 打款信息流程圖
4. 打款資金流程圖
5. 退款業務流程圖
6. 退款交易時序圖
7. 信息流程圖
九、記賬邏輯
1. 充值類業務記賬處理
- 被支付充值賬戶登記一條充值業務流水
- 實時更新被該充值賬戶余額
- 發送該充值業務數據到會計核心
- 會計核心根據賬務系統提供的會計科目做一條客戶帳的貸方分錄
- 會計前置系統將該條充值業務訂單發送之對帳中心數據庫
- 日終處理程序根據對賬中心當日的充值數據按業務類別(不含人工恢復數據)匯總分別借記一條中行銀行待清算款充值賬戶的分錄,同時更新相應科目下的內部戶余額。(注:該分錄入賬時間與被充值賬戶的貸方分錄中登記的入賬日期保持一致)(業務要求:匯總的幾條分錄能分別查看到相應的明細流水)
2. 充值業務訂單的恢復處理
3. 充值訂單對賬處理
4. 提現類業務記賬處理
(1)提現業務處理
(2)提現業務處理記賬邏輯
(3)提現業務對賬后賬務處理
5. 對賬處理
6. 會計分錄
本文由 @支付學院 原創發布于人人都是產品經理,未經允許,禁止轉載。
題圖來自 Unsplash,基于CC0協議。
我太笨了,看著看著就懵逼了
哪里抄的說請楚哪里抄的
四、會計資金平衡關系
這一節下,第5步 銀行從支付機構備付金扣款 (以完成第4步的提現過程),個人認為還是有點瑕疵
會計分錄應該是:
借 404待清算提現款項
貸 中央銀行備付金 (方便理解 可以簡化成圖里的 銀行存款,也就是支付機構直接從銀行存款付款,而不是備付金)
下面也有人提到了 :“利潤類科目記在借方表示增加,記在貸方表示增加。”,這個表述有個小失誤的,也就是:利潤類科目記在借方表示 [減少]
在看到第四節會計資金平衡關系的時候,還沒理解會計主體是哪一方,是支付寶嗎?
一篇好文,毀在細節上了。對于外行本來就難讀懂,再有mistake,更沒法理解了。
錯別字太多了,看起來費力
首先很感謝分享;這篇文章整體大方向沒啥毛病,但是每一個小節的細節都有很大問題,都是一些細節上的不嚴謹,很容易把人帶到坑里去;我看了下評論區大都是評論不明覺厲,為啥都是這樣的反應呢?就是因為通篇內容都是似是而非,粗看上去都沒啥問題,但是細節處每一個小節都有些問題,有些甚至是特別的坑,很容易把人帶進溝里去;
如果發帖者希望尋找這類內容的講師或者分享布道師,歡迎聯系我,目前帖子里這樣的內容分享和表達形式只會打擊新進入支付行業的新兵的信心。
有相關文章?
有VX或者gz號?
有交流方式或者渠道嗎,秋秋老師
這篇文章是在要求斷直連之前寫的嗎?
朋友介紹給我的文章,看完之后被“原創”二字惡心了一把,麻煩小編,引用的部分請標記一下出處。怕鏈接被刪,文字表達一下:百度文庫或者豆丁網搜索“支付寶財務核心總體業務架構”(其實是賬務核心,上傳的人打錯了字)
感謝您的關注,本篇文章為支付學院名譽導師秋秋撰寫。秋秋老師本命陶飛,先后任職支付寶、快錢、金運通支付,為早期支付寶資深專家,參與了支付寶產品初期的大量搭建工作。同時,秋秋老師認為,支付寶作為國內領先的支付產品,其架構的整體設計理念作為教材非常適合支付從業人員,因此根據本人實際工作經驗與項目經歷,付出了大量的時間與心血成就了支付學院的課程。感謝您對于原創作品的保護心理,希望您繼續關注支付學院以幫助我們做得更好。
負債類科目記在借方表示減少,記在’借‘方表示增加;
所有者權益記在借方表示‘減少’,記在貸方表示‘減少’;
利潤類科目記在借方表示‘增加’,記在貸方表示‘增加’。
請問作者這一段是不是有點問題啊,帶引號的部分都很暈。
我覺得這里肯定寫錯了,
所有者權益和利潤類科目都是貸方增加,借方減少
就是寫錯了
說實話,我沒看懂,,,財務小白,。
把握好根結點:有借必有貸,借貸要平衡。
樓主,關于四的第一個記賬圖中,最后提現的部分的第五步,借方為什么是401 清算充值款項,而不是待清算提現款項啊,是寫錯了嗎,麻煩解答下?
有點專業,我表示佩服
算不明白賬的我 必須要好好看看
膜拜了樓主!注冊賬號以來第一次留言 ??
?? 感謝支持
干貨
專業,深入,了解一下也沒有壞處
老鐵666
利潤類在貸方是減少,估計打錯了,得改一下
對啊這個我就看的有點暈不理解
樓主犀利,表示財經的我,只使用過系統,看這篇文章學習了各系統關聯,很值。
估計我要看至少5遍才看得懂