【问题标题】:How do I programmatically download my bank transactions from Chase without using a third party?如何在不使用第三方的情况下以编程方式从 Chase 下载我的银行交易?
【发布时间】:2018-06-17 20:41:06
【问题描述】:

我有兴趣在不使用第三方(例如 Mint、Quicken、Yodlee、Plaid 等)的情况下从 Chase 下载我的交易。我不信任第三方来处理我的数据,这就是我想自己做的原因。

【问题讨论】:

    标签: ofx


    【解决方案1】:

    从 18 年 1 月 8 日开始工作

    总结

    Chase 使用 OFX 支持与其财务数据的程序化交互。然而,这样做有点不情愿,因为这一事实没有被广泛宣传,也没有很好的记录——银行宁愿让你直接使用他们的产品,而不是去第三方。话虽如此,对 Quicken 等桌面产品的支持仍然存在,因此一种方法是将自己伪装成桌面产品(其他选择是使用第三方服务或使用屏幕抓取工具)。显然,这个解决方案完全受制于 Chase 的奇思妙想,并且作为一种不鼓励的访问模式,它并不健壮。但是您仍在阅读,所以让我们这样做吧!

    解决方案

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

    2. 生成客户端 UID。 Chase 将使用它来验证它收到的 OFX​​ 请求是否是预期的。 转到https://www.uuidgenerator.net/ 并生成一个UID。

    3. 使用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>
    
    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/

    【讨论】:

    • 我能够进行 REST API 调用来完成这项工作,但是在查看了 python 库之后,我将请求内容类型从 application/xml(给我错误代码 500)更改为 @987654332 @ 并且成功了!
    • 稍微澄清一下:这里的“Headers”是OFX Headers,它位于HTTP请求的正文中,与OFX请求有效负载分开,用空行分隔。
    • 截至 2019 年 10 月 24 日,所述设置的位置有点不同:Account &gt; Profile &amp; Settings &gt; Account Safe &gt; Desktop software &gt; Next 并遵循一个小向导。
    • 这个脚本还能用吗?我打电话给ofx-ba-tfb.py chase my_chase_username,然后我收到这个错误:getaddrinfo(host, port, 0, SOCK_STREAM): socket.gaierror: [Errno 11001] getaddrinfo failed我做错了吗?
    • 启用桌面软件现已移至大通网站->汉堡菜单->安全和隐私->桌面软件
    猜你喜欢
    • 2021-08-10
    • 2016-07-18
    • 2015-04-22
    • 1970-01-01
    • 2019-01-09
    • 2015-03-17
    • 2021-12-30
    • 2022-10-31
    • 1970-01-01
    相关资源
    最近更新 更多