我有兴趣在不使用 Mint、Quicken、Yodlee、Plaid 等第三方的情况下从 Chase 下载我的交易。我不信任第三方来处理我的数据,这就是我想自己做的原因。
1 回答
从 18 年 1 月 8 日开始工作
概括
Chase 使用 OFX 支持与其财务数据的程序化交互。然而,这样做有点不情愿,因为这一事实没有被广泛宣传,也没有很好的记录——银行宁愿让你直接使用他们的产品,而不是去第三方。话虽如此,对 Quicken 等桌面产品的支持仍然存在,因此一种方法是将自己伪装成桌面产品(其他选择是使用第三方服务或使用屏幕抓取工具)。显然,这个解决方案完全受制于 Chase 的奇思妙想,并且作为一种不鼓励的访问模式,它并不健壮。但是您仍在阅读,所以让我们这样做吧!
解决方案
设置您的帐户以接受来自桌面应用程序的连接 帐户 > 配置文件和设置 > 管理帐户安全 > 桌面应用程序 > 单击启用
生成客户端 UID。Chase 将使用它来验证它收到的 OFX 请求是否是预期的。转到https://www.uuidgenerator.net/并生成一个 UID。
使用ofx-ba-tfb.py将以下内容发布到https://ofx.chase.com。注释以# 符号开头,不要包含它们。
标题:
OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:{Insert random alphanumeric string}
有效载荷:
<OFX>
<SIGNONMSGSRQV1>
<SONRQ>
<DTCLIENT>20180108012004
<USERID>{Insert user id}
<USERPASS>{Insert password}
<LANGUAGE>ENG
<FI>
<ORG>B1 # Comes from ofxhome.com
<FID>10898
</FI>
<APPID>QWIN
<APPVER>1800
<CLIENTUID>{Insert random alphanumeric string}
</SONRQ>
</SIGNONMSGSRQV1>
<CREDITCARDMSGSRQV1>
<CCSTMTTRNRQ>
<TRNUID>{Insert random alphanumeric string}
<CLTCOOKIE>4
<CCSTMTRQ>
<CCACCTFROM>
<ACCTID>{Insert account id here}
</CCACCTFROM>
<INCTRAN>
<DTSTART>20171208
<INCLUDE>Y
</INCTRAN>
</CCSTMTRQ>
</CCSTMTTRNRQ>
</CREDITCARDMSGSRQV1>
</OFX>
验证请求 您将收到回复,“请在接下来的 7 天内验证您的身份。使用您的台式计算机,访问您的银行网站并访问安全消息中心以获取说明。” 稍有延迟(以分钟为单位)后,您将在安全消息中心收到一条消息,要求您确认您已提出此请求。确认请求。您提交的每个新客户 UID 都会发生这种响应和验证。
再次发出 OFX 请求,您应该会收到您的交易!
注释
非常感谢 Harry Sit @thefinancebuff.com 完成了大部分工作!!
通过 OFX 可以实现更多,这是一个复杂的标准。详情请查看规范。
您还可以使用 GnuCash 查看其他有希望的设置。
这是使用 OFX 1.02,但 Chase 现在是 2.2
参考
https://thefinancebuff.com/replacing-microsoft-money-part-5-ofx-scripts.html#comments