5

TripleZ's Blog

 2 years ago
source link: https://blog.triplez.cn/posts/monthly-bookkeeping-workflow/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

准备工作#

  • 一部装有 beancountfava 以及 double-entry-generator 的 Mac 或 PC。
  • 一部 iPhone 或 Android 手机。
  • 本地存储个人 my-bookkeepings 账本最新内容。

开始工作!#

导入微信支付账单#

先查看上月微信 beancount 账单,确定最后导入日。

「微信」中导出从最后导入日至今日的微信支付账单。

使用如下命令生成账单:

double-entry-generator translate \
  --config ./config/double-entry-generator/wechat.yaml \
  --provider wechat \
  --output tmp-wechat.beancount \
  your_wechat_bills.csv

修改相关 FIXME 账户交易(posting)。

在当月 index.beancount 中添加微信支付的相关 balancedocument 语句,例:

0000-00-00 document Assets:Digital:Wechat:Cash "./path/to/your_wechat_bills.csv"
0000-00-01 balance  Assets:Digital:Wechat:Cash    <balance_value> ~ 0.00 CNY

balance 日期必须为 T+1,否则语句会忽略今日交易,导致对账失败。

若对账失败,特别是小额差异,极有可能是「零钱通」发放利息所致。值得注意的是,微信「零钱通」的利息发放并不包括在微信导出的账单当中。

值得注意的是,从「理财通」转入至「银行卡」的交易,微信支付是没有记录的,见这里

导入支付宝账单#

先查看上月支付宝 beancount 账单,确定最后导入日。

「支付宝」导出从最后导入日至今日的支付宝账单。

使用如下命令生成账单:

double-entry-generator translate \
  --config ./config/double-entry-generator/alipay.yaml \
  --provider alipay \
  --output tmp-alipay.beancount \
  your_alipay_bills.csv

修改相关 FIXME 账户交易(posting)。

在当月 index.beancount 中添加支付宝的相关 balancedocument 语句,例:

0000-00-00 document Assets:Digital:Alipay:Cash "./path/to/your_alipay_bills.csv"
0000-00-01 balance  Assets:Digital:Alipay:Cash    <balance_value> ~ 0.00 CNY

balance 日期必须为 T+1,否则语句会忽略今日交易,导致对账失败。

导入火币账单#

(可选,依据月度是否有火币交易)

先查看上月火币 beancount 账单,确定最后导入日。

「火币」导出从最后导入日至今日的火币账单。

使用如下命令生成账单:

double-entry-generator translate \
  --config ./config/double-entry-generator/huobi.yaml \
  --provider huobi \
  --output tmp-huobi.beancount \
  your_huobi_bills.csv

修改相关 FIXME 账户交易(posting)。

导入银行卡账单#

double-entry-generator 目前没有支持银行卡账单的转换,鉴于个人使用银行卡的交易较少(<10 笔/月),可以直接使用手动记账。

  • 中国工商银行

先写一个 T+1balance 对账语句,对相关的账户进行断言。

0000-00-01 balance Assets:Bank:CN:ICBC:Savings          <balance_value> ~ 0.00 CNY
0000-00-01 balance Assets:Bank:CN:ICBC:SocialSecurity   <balance_value> ~ 0.00 CNY
0000-00-01 balance Assets:Bank:CN:BOCOM:Savings         <balance_value> ~ 0.00 CNY
0000-00-01 balance Assets:Bank:CN:BOC:Savings           <balance_value> ~ 0.00 CNY
0000-00-01 balance Liabilities:CreditCard:CN:ICBC       <balance_value> ~ 0.00 CNY
1111-11-19 balance Liabilities:CreditCard:CN:CMB        <balance_value> ~ 0.00 CNY

笔者的信用卡账单分别是每月 1 日和 19 日出账,故将信用卡断言的日期设为当月 1 日以及 19 日。

工商银行信用卡可以看到实时余额,而招行的只能在出账当天才可获得余额。因此工行信用卡可以直接断言当日余额,而招行银行卡需要断言出账日与余额。

查找当月相关银行卡账单,手动记录在当月的 index.beancount 中。

总结#

以月为粒度,微信、支付宝账单基本都能够正常转换,整个工作流下来需要花费的时间成本在二十分钟以内。

使用 double-entry-generator 能够基本实现个人记账期望,可以考虑固化该工作流,以长期使用。

相关链接#


知识共享许可协议
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK