汇丰香港信用卡 CSV beancount importer
前言
最近🦁️大抵新户活动结束,让你没得占便宜,于是放开批卡。次第获批 pulse 与 red,于是要写个信用卡的 importer来记账。本来想着怎么解析结单,登录网银后发现可以下载 csv 文件,以前的储蓄结单导入就懒得改了保持原样,另写 csv importer。
CSV
不同于上篇自定义 importer,csv 可以用现成的 csv importer。只需按🦁️的格式编写 importer。
观察 csv 发现有以下几项,
Transaction date | Post date | Description | Billing amount | Billing currency | Transaction status | Merchant name | Country / region | Area / district | Credit / Debit |
---|
可知 csv 列配置对应
1 |
|
另外补充卡末4位列。
🦁️信用卡账户不合并。额度分离,账单分离,甚至还款日都不一样。因此 open 多个账户,写 csv importer 也须多个。在 csv 文件头可以加标记用于区分,因为 pulse 银联双币钻具有港币与人民币两个子账户,所用币种不同,体现在 csv importer 的 currency 上。
注意点
🦁️的 csv 中消费金额用了负号表示贷款。不同于一些银行是用正数,因此需用 csv.Col.AMOUNT_CREDIT 对应 Billing amount。
🦁️日期格式如同🇬🇧为日/月/年。而 beancount 作者大概在🇺🇸生活(github 个人页地址在纽约),默认按🇺🇸式月/日/年,解析出日期错误。须在
1 |
|
定义日期格式为日/月/年。
示例
1 |
|
结语
与可能更适合人类阅读的 pdf 结单相比,csv 果然更适合程序处理。省却一次识别转换(实在没看懂储蓄结单 pdf 转换源码)直接写更熟练的 csv importer 对于非 python 程序员更为友好。听闻欧美一些银行有使用 open banking API 提供接口服务,用 api 方式获取账单对象转换的话应是更加方便。反观某国不仅不开放,还要大作限制,实在与世界 finTech 趋势背道而驰,吃枣💊。