這是清結算系列的第四篇文章,本文重點介紹清結算中的帳戶和帳務的處理。
請務必閱讀這幾篇文章以便理解這裡的流程。
在設計清結算系統前,首先需要完成帳戶體系的梳理。 帳戶是用來記錄會計科目所反映的業務內容的工具,它根據會計科目來開設的。 帳戶有多種維度的分類。 按照經濟內容來說,帳戶分為資產類帳戶、負債類帳戶、所有者權益類帳戶、損益類帳戶、成本類帳戶和共同類帳戶。 按照會計周期內期末是否有餘額,也分為實帳戶和虛帳戶。
用來反映資產增加、減少以及增減變動結果的帳戶。和支付系統相關的主要資產類帳戶有: 銀行存款、應收帳款、預付帳款、庫存商品、發出商品等。 資產增加登記在借方,減少登記在貸方,期末有餘額的話,一般出現在借方。 在一個會計期間,所有借方金額的累加為「借方本期發生額」,所有貸方金額的累加為「貸方本期發生額」。
資產帳戶的餘額=借方期初餘額+借方本期發生額-貸方本期發生額。
為了跟蹤在每個銀行的存款變更情況, 需要對公司在各個銀行開通的收款帳戶設置對應的銀行存款帳戶、應收帳款帳戶。在小明購買會員卡的案例中,資產類帳戶包括:
負債類帳戶也是實帳戶,記帳規則跟資產類相反,負債增加記為貸,負債減少記為借,期末如有餘額,一般在貸方,表明期末有債務實有額,負債類帳戶的餘額計算:
貸方期末餘額=貸方期初餘額+貸方本期發生額-借方本期發生額。
從支付系統的角度, 電商公司的自有帳戶,包括針對個人的帳戶和針對商戶的帳戶,一般放在負債類帳戶下,此外,應付帳款、預收帳款、應交稅費等,也是負債類帳戶。
所有者權益類帳戶用來反映所有者權益增加、減少和變動結果的帳戶, 記帳規則跟負債類帳戶一致:所有者權益增加記為貸,減少記為借。和支付系統有關的所權帳戶包括 本年利潤、利潤分配等帳戶。 企業取得的收入最終會使得所有者權益增加,因此收入類帳戶的記帳方法跟所有者權益一致:增加記為貸,減少或者轉銷記為借,通常該帳戶期末無餘額(因為期末收入都會轉為所有者權益,如未分配利潤等),屬於虛帳戶。
損益類帳戶分為收入類和費用類帳戶。
收入類帳戶指各種收入、補貼、投資收益,如主營業務收入、其他業務收入和營業外收入等,增加記為貸,減少記為借。
企業在日常經營活動中會發生各種各樣的耗費,這些耗費在會計學上稱為成本費用,它們是收入的抵減項目,在抵銷收入之前,可以視為一種資產,因此成本費用類帳戶的記帳規則跟資產類一樣:增加記為借,減少或者轉銷記為貸。費用類帳戶包括:主營業務成本、其他業務成本、營銷費用等。
按照企業會計制度的規定,損益類帳戶的科目餘額,應該結轉入利潤分配科目,期末餘額為零,為虛帳戶。
在本案例中,損益類帳戶包括:
有成本核算的企業需要設立的帳戶,包括生產成本、勞務成本等,本文暫不涉及。
這是反映特殊經濟業務的帳戶, 本文暫不涉及。
如前述文章介紹,我們採用複式借貸記帳法。對於分戶帳,或者說明細帳,如下示例:
在這個實例中, 帳戶中帳務相關的結構包括:
在實現上,帳戶的各個屬性更新時間並不一致,所以在設計帳戶表的時候,可以按照更新時機來劃分表。
在存儲上,帳務相關信息一般是和帳戶其他信息相互獨立處理,處理帳務相關信息的子系統被稱為帳務子系統或者記帳子系統。
接著之前的小明購買會員卡的案例,不考慮優惠券和卡採購的情況,會計分錄:
借:
貸: 主營業務收入-會員卡 100
在線上的實時處理流程如下:
這5個步驟都是線上的流程,在此過程中,各個子系統之間的交互如下圖所示。 我們逐步分析這裡涉及到的對象。
這個流程中,首先生成的是支付訂單。這是一個比較簡單的訂單,僅涉及到一個商家和一個商品。 在比較複雜的電商場景中,一個訂單會涉及到多個商家、多種商品以及對應的優惠活動。也就是,一個總訂單會被拆分為多個子訂單。這部分內容將在後續的訂單系統設計一文中詳細介紹。 而訂單中和資金相關的內容,都需要在帳戶體系中建立對應的科目和帳戶。在請求支付時,只會將總訂單提交支付,拆分子訂單是在訂單系統中完成的。
針對上述場景,為了簡化處理,假定老熊公司當天總共完成了三筆會員卡交易,支付訂單如下:
在這個流程中,訂單系統向支付系統請求支付時,支付系統將產生支付記錄(支付訂單)。 支付記錄內容比較多,這些數據是後續進行記帳的基礎。
上述的三個訂單,兩筆通過工行支付,一筆通過支付寶支付,其產生的支付記錄如下,此處省略了其他和記帳無關的欄位內容:
這裡需要注意的幾個屬性:
在產生支付記錄後,在上述流程的第5步通過消息機制來異步觸發記帳流程。帳務系統接收到記帳消息後,開始更新帳戶信息。記帳分為兩個階段:
支付記帳是在支付流程中完成的,目的是讓用戶完成購買後,能夠立即看到支付結果和帳戶餘額。為了提升性能,支付記帳一般採用單邊帳的形式,即將會計分錄登記在用戶側或者商戶側。
在上述案例中,第6步處理,在伺服器上與銀行側同步登記一筆從小明銀行卡的支出,並在會員業務帳戶上登記一筆收入。 如果使用的是零錢支付,這一個步驟就很重要,從零錢帳戶上扣除費用計算餘額,添加對應的消費記錄,是在一個事務中完成。
會計記帳採用複式記帳,不同業務記帳方式也不一樣。小明買卡的案例中,需要記錄的條目有:
這3條記錄是通過事務處理一次生成。當天發生的三筆交易,產生的記帳內容如下:
實際實現上,科目一列,使用帳號ID來替代。 每個帳戶的本期發生額,可以在另一個表中單獨異步計算。
在會計上,對帳分三個部分:帳證核對、帳帳核對和帳實核對,做到帳證相符、帳帳相符和帳實相符。在電商支付系統中,需要完成的對帳工作包括內部對帳、外部對帳和資金對帳。 其中外部對帳又分為和支付渠道的對帳、和商戶的對帳以及和用戶的對帳。 這裡簡單介紹每個對帳流程以及對記帳的影響,詳細的對帳和軋帳流程,將在下一篇文章中說明。
內部對帳的內容包括:
這是後續帳帳核對和帳實核對的基礎,也是對外對帳的基礎。 這兩個對帳任務一般是在後臺定時運行(5分鐘運行一次),除非系統有bug或者發生故障,內部對帳一般不會出現差錯。如有差錯,也需要人工處理。
一般銀行、第三方支付提供T+1的對帳單,這是執行渠道對帳的依據。 在上述案例中,支付系統每天拉取工行前一天的對帳單,核對交易流水。與此同時,按照從工行獲取的對帳單,記錄資金歸集的帳務。
接收到工行對帳單後,按照對帳單生成憑證:
注意上述的日期、憑證號,以及借貸關係。
完成渠道對帳後,需要進行日結和試算平衡:
從科目維度,計算:
對電商公司來說,最重要的帳實核對,是驗證銀行存款的變化和實際資金流向是一致的。一般是需要登錄到銀行網銀系統中來人工核實。 如果對接的銀行多,銀行提供網銀對帳單,也可以自動進行,查詢出入款總額。
詳細的對帳和軋帳流程,將在下一篇文章中說明。
本文主要介紹支付清結算中的帳戶和帳務的處理。 在此期間,有不少同學詢問是否可以詳細介紹某一個記帳或者帳戶應該如何設計,希望能夠針對某一主題做進一步說明。清結算是一個很專業的話題,這個專業不是計算機專業,而是會計專業。 每個公司的帳戶和帳務處理都有自己的要求和特點。
這一系列文章,主要是從軟體開發的角度來協助大家梳理清結算相關的基礎知識,讓大家和會計同學對話的時候有一個基礎,或者說共同語言。具體的帳戶、帳務、會計處理流程,需要和公司會計詳細溝通。關於清結算系統的設計和實現,將在支付系統設計系列中介紹。
鳳凰牌老熊,微信公眾號:鳳凰牌老熊,人人都是產品經理專欄作家,10多年企業應用和網際網路軟體架構設計經驗,關注網際網路金融和大數據領域。
本文原創發布於人人都是產品經理。未經許可,禁止轉載。