最近在做一些支付相关的需求,学习复式记账的过程很痛苦,在此记录一下。


从流水账到复式记账

最简单的记账方式是流水账(单式记账):一条记录写清楚时间、金额、用途,就够了。个人记账 App 基本都是这个模式——“3月1日,午饭,-35元”。

流水账的问题在于它只记录了一个维度。钱花了 35 元,但这 35 元从哪个账户出的?是现金、借记卡、还是信用卡?如果同时持有多个账户,流水账无法自动核对余额是否对得上。

复式记账解决这个问题的方式很直接:每笔交易至少记两条,一条说明钱从哪来,一条说明钱到哪去。两边金额必须相等——不等就说明记错了。这就是"有借必有贷,借贷必相等"。

基本概念

复式记账的前提很简单:任何一笔经济业务,至少影响两个账户。“有借必有贷,借贷必相等”——这条规则同时也构成了内在的自校验机制(Trial Balance)。

这里的"借 (Debit)“和"贷 (Credit)“不是日常用语中的意思,它们仅仅是账户的左侧和右侧,本身没有增减含义。增还是减,取决于账户的性质。

所有记账行为最终维护的是这个等式:

资产 (Assets) = 负债 (Liabilities) + 所有者权益 (Equity)

引入收入和费用后,五大类账户的借贷规则如下:

账户类别 借方 (Dr.) 贷方 (Cr.)
资产 (Assets) 增加 减少
费用 (Expenses) 增加 减少
负债 (Liabilities) 减少 增加
权益 (Equity) 减少 增加
收入 (Revenue) 减少 增加

换一种方式理解:贷方记录钱从哪来,借方记录钱到哪去。 负债增加、权益增加、收入增加——都是资金的来源,所以记贷方;资产增加、费用增加——都是资金的去向,所以记借方。

再直观一点:

  • Debit(借方) — 得到某种资源、消耗某种价值、或减少了某项义务。
  • Credit(贷方) — 付出某种资源、承担某种义务、或获得某种收入。当资产增加但没有外部资金流入时(比如股票升值),贷方记录的是这笔增加的"来源”——内在价值的增长,从而增加了净财富。

关于 Debit Card 和 Credit Card 的命名

Debit Card(借记卡) 站在银行的视角,用户的存款对银行来说是一笔负债(银行欠用户的钱)。当用户消费,银行从存款中扣款,对应这笔负债减少——负债减少记借方,即 Debit 操作。所以叫 Debit Card。

Credit Card(信用卡) 站在银行的角度,用户消费时银行替用户垫付,形成一笔资产(应收账款——用户欠银行的钱)。当用户消费,银行增加用户负债的数额。消费操作本身依然是一个 Debit 操作,信用卡的命名更多来自于”信用”授予的概念。

场景 银行视角 用户视角
借记卡消费 Debit:负债减少 Credit:资产减少
信用卡消费 Debit:资产增加(应收款) Credit:负债增加(欠款)

T 型账户与记账流程

为什么叫 T

每个账户可以画成一个 T 字形,左边是借方 (Debit),右边是贷方 (Credit),顶部写账户名。所有的增减变动都记在对应的一侧。比如"银行存款"这个资产账户,在前面三笔基础分录后长这样:

         银行存款 (Cash in Bank)
       ───────────────┬───────────────
    Dr. (借方/增加)   │  Cr. (贷方/减少)
                      │
    股东注资 100,000  │  支付租金   5,000
    银行贷款  50,000  │
                      │
    合计     150,000  │  合计       5,000
       ───────────────┴───────────────
            余额:145,000 (借方)

资产类账户的正常余额在借方(左边大于右边),负债和权益类则相反。T 型账户就是这个名字的来源——形状像字母 T。

日记账 (Journal) 与分类账 (Ledger)

实际的记账流程分两步:

  1. 日记账 (Journal):按时间顺序记录每一笔分录,类似交易流水。前面写的那些 DEBIT / CREDIT 分录就是日记账的格式。
  2. 分类账 (Ledger):按账户归类汇总。把日记账中的每一条,过账 (Post) 到对应的 T 型账户中去。

类比到支付系统:日记账相当于交易流水表(每笔交易一条记录),分类账相当于账户余额表(每个账户的当前状态)。先有流水,再更新余额——顺序不能反。

一些栗子

场景 1:银行视角 — 信用卡+现金混合支付

小王使用信用卡 ¥500 和现金 ¥500 支付给商家 B 的借记卡,银行收取 ¥1 手续费。

站在银行的账本上,这笔交易拆解为四个动作:

  • 小王刷信用卡 ¥500 → 银行替小王垫付,小王欠银行 ¥500(资产:应收账款增加)
  • 小王交现金 ¥500 → 银行收到现金(资产:库存现金增加)
  • 商家 B 的借记卡入账 ¥999 → 银行对 B 的存款债务增加(负债:客户存款增加)
  • 银行收取 ¥1 手续费(收入增加)
DEBIT:  Assets — Credit Card Receivable / 小王 (应收信用卡款-小王)    ¥500
DEBIT:  Assets — Cash on Hand (库存现金)                              ¥500
CREDIT: Liabilities — Customer Deposit / Merchant B (客户存款-商家B)  ¥999
CREDIT: Revenue — Transaction Fee Income (手续费收入)                   ¥1

借方 ¥500 + ¥500 = 贷方 ¥999 + ¥1 = ¥1,000

场景 2:个人记账 — 借记卡买可乐

小王决定使用高端的复式记账进行个人记账。他用借记卡支付 ¥5 购买了一瓶可乐。

  • 花了 ¥5 买可乐(费用增加)
  • 借记卡余额减少 ¥5(资产减少)
DEBIT:  Expenses — Food & Beverage (餐饮费用)             ¥5
CREDIT: Assets — Debit Card / Checking (借记卡/活期存款)  ¥5

场景 3:个人投资 — 购买股票并升值

小王用借记卡购买了 ¥2,000 的一股谷歌股票,随后在梦里升值到了 ¥3,000。

这个场景需要两笔分录。

购买时: 资产形态转换——现金变成了股票。

  • 获得价值 ¥2,000 的股票(资产:投资增加)
  • 借记卡余额减少 ¥2,000(资产:银行存款减少)
DEBIT:  Assets — Investment / GOOGL (投资-谷歌股票)       ¥2,000
CREDIT: Assets — Debit Card / Checking (借记卡/活期存款)  ¥2,000

期末重估 (Mark-to-Market): 股票升值 ¥1,000,产生未实现收益。

  • 投资账面价值上升 ¥1,000(资产增加)
  • 产生未实现投资收益 ¥1,000(收入增加)
DEBIT:  Assets — Investment / GOOGL (投资-谷歌股票)               ¥1,000
CREDIT: Revenue — Unrealized Gain on Investment (未实现投资收益)  ¥1,000

此时收益尚未实现——股票没有卖出,只是账面浮盈。真正卖出时,需要将未实现收益转为已实现收益,并记录资金回流到银行账户。

场景 4:个人还贷 — 现金+借记卡还房贷

小王用 ¥5,000 现金和 ¥5,000 借记卡还房贷,其中 ¥9,000 偿还本金,¥1,000 支付利息。

银行账本:

  • 小王交现金 ¥5,000 → 银行收到现金(资产:库存现金增加)
  • 小王借记卡扣款 ¥5,000 → 银行对小王的存款债务减少(负债:客户存款减少)
  • 房贷本金回收 ¥9,000 → 银行的贷款资产减少(资产:贷款应收减少)
  • 银行收取利息 ¥1,000(收入增加)
DEBIT:  Assets — Cash on Hand (库存现金)                            ¥5,000
DEBIT:  Liabilities — Customer Deposit / 小王 (客户存款-小王)       ¥5,000
CREDIT: Assets — Mortgage Loan Receivable / 小王 (房贷应收款-小王)  ¥9,000
CREDIT: Revenue — Interest Income (利息收入)                        ¥1,000

借方 ¥5,000 + ¥5,000 = 贷方 ¥9,000 + ¥1,000 = ¥10,000 ✓

小王账本:

  • 房贷本金减少 ¥9,000(负债减少)
  • 支付利息 ¥1,000(费用增加)
  • 现金减少 ¥5,000(资产减少)
  • 借记卡余额减少 ¥5,000(资产减少)
DEBIT:  Liabilities — Mortgage Loan (房贷本金)            ¥9,000
DEBIT:  Expenses — Mortgage Interest (房贷利息)           ¥1,000
CREDIT: Assets — Cash on Hand (现金)                      ¥5,000
CREDIT: Assets — Debit Card / Checking (借记卡/活期存款)  ¥5,000

借方 ¥9,000 + ¥1,000 = 贷方 ¥5,000 + ¥5,000 = ¥10,000 ✓

参考阅读