如何通过编程从Chase下载我的银行交易记录而不使用第三方?

27

我希望能够从Chase下载我的交易记录,而不使用像Mint、Quicken、Yodlee、Plaid等第三方服务。我不信任第三方处理我的数据,所以我想自己来做。

3个回答

22

截至2018年1月8日,该方法仍然有效。

摘要

Chase使用OFX来支持与其金融数据的编程交互。但是,由于各种原因,这一事实并没有被广泛宣传或记录——银行更希望您直接使用他们的产品,而不是去第三方。尽管如此,对桌面应用程序(如Quicken)的支持仍然存在,因此一种方法是伪装自己成为桌面应用程序(其他选项包括使用第三方服务或使用屏幕刮刀)。显然,这种解决方案完全取决于Chase的心情,而作为一种不鼓励的访问模式,这种解决方案并不健壮。但是,既然你还在阅读,那么就让我们开始吧!

解决方案

  1. 设置您的账户以接受来自桌面应用程序的连接 账户>个人资料和设置>管理账户安全性>桌面应用程序>点击启用

  2. 生成客户端UID。Chase将使用此UID来验证其接收到的OFX请求是否是有意的。 访问https://www.uuidgenerator.net/并生成UID。

  3. 使用ofx-ba-tfb.pyhttps://ofx.chase.com POST以下内容。注释以#符号开头,请勿包含它们。

标题:

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>
  1. 验证请求 您将收到一条响应,上面会说:“请在接下来的7天内验证您的身份。使用您的台式电脑,访问您银行网站的安全消息中心以获取指示。”几分钟后,您将在您的安全消息中心收到一条消息,要求确认您发出了这个请求。确认请求。每次提交新的客户UID时都会出现此响应和验证。

  2. 再次发起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

http://www.ofx.net/

http://www.ofxhome.com/

http://www.ofxhome.com/ofxforum/viewtopic.php?id=47456

https://rhye.org/post/parsing-ofx-leex/


3
我能够通过REST API调用来使这个工作,但在查看Python库之后,我将请求内容类型从“application/xml”更改为“application/x-ofx”,然后它就起作用了! - Sunny Patel
1
稍作澄清:这里的“Headers”是OFX Headers,它们位于HTTP请求正文中,与OFX请求有效载荷用空行分隔。 - Eric
1
截至2019年10月24日,所描述设置的位置有点不同:帐户>个人资料和设置>帐户安全>桌面软件>下一步并按照向导进行。 - Joshua Frank
这个脚本还能用吗?我正在调用 ofx-ba-tfb.py chase my_chase_username,然后我得到了这个错误:getaddrinfo(host, port, 0, SOCK_STREAM): socket.gaierror: [Errno 11001] getaddrinfo failed。我做错了什么吗? - kmoney12
2
启用桌面软件现已移至Chase网站->汉堡菜单->安全和隐私->桌面软件。 - mberna
显示剩余6条评论

3
根据HLE的说法,自2022年9月底/10月初起,Chase停止支持OFX/DirectConnect。以下是相关文章:
“从2022年10月6日开始,Chase将不再支持包括第三方账单支付在内的Direct Connect/OFX。与其他一些大型金融机构一样,Chase已经转向使用Open Banking连接方法进行交易导入。下面列出了一篇解释Open Banking的文章链接。” https://www.banktivity.com/support/articles/banktivity-7/ofx-direct-connect-will-no-longer-be-supported-by-chase-as-of-october-6th-2022/ “Chase银行正在改变与Quicken等个人财务管理解决方案的连接方式。为了保持Quicken与您的Chase账户连接,您需要在2022年9月26日或之前更换连接方式。” https://community.quicken.com/discussion/7916266/quicken-chase-announce-killing-link-to-chase-direct-connect-bill-pay “针对Moneydance用户的可能解决方案:” http://infinitekind.tenderapp.com/discussions/online-banking/23881-chase-bank-accounts-no-longer-can-connect 听起来.QXF文件包含与.OFX文件相同/相似的数据,此类文件可以通过脚本进行下载。如果我了解到更多信息,我将更新这个答案。

1
感谢提供的参考资料。您有没有想过这对于 beancount 用户如何使用?我来到这个帖子是希望自动下载 OFX 文件以便与 beancount-import 一起使用。 - Addison Klinke

2
自2022年10月5日起,Chase断开了ofx.chase.com的连接,看起来您必须去Quicken/MD+等聚合器获取您的数据。

1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接