【问题标题】:Banking API/protocol [closed]银行 API/协议 [关闭]
【发布时间】:2011-03-29 00:45:11
【问题描述】:

是否有银行通过任何形式的 API 提供个人账户的数据馈送?我基本上是在不登录他们的网站的情况下查看账户余额。

我记得在某个时候读过有关通用银行协议的文章……也许 mint.com 使用它来访问帐户? mint.com 是否与每家银行都有特殊关系,或者我可以利用他们的方法吗?

编辑:根据我的要求,我只对访问自己的财务数据感兴趣。

【问题讨论】:

    标签: api banking onlinebanking datafeed


    【解决方案1】:

    API 访问

    您需要与每个机构核实他们是否提供用于直接访问的 API。有些将通过拨号线路提供访问,有些则提供更现代的基于 IP 的服务。每个都可能需要您注册并支付费用。

    更简单的方法是要求用户从银行下载他们的对帐单并将其导入您的应用程序。大多数网上银行系统都提供此功能。

    格式

    无论哪种方式,银行都支持多种格式 (taken from here)。

    • OFX(开放金融交易所)
    • QIF(快速交换格式)
    • CSV(逗号分隔值)

    您可能会看到 OFX 被称为 Quickbooks、Microsoft Money 2005 或 Sage Line 50。QIF 有时也称为 Quicken 98 或 2000,或 Microsoft Money 2003。

    CSV 格式将是每个机构专有的,并且需要为每个实例开发解析逻辑。

    谁使用什么格式

    支持 OFX 或 QIF 格式的英国银行有:

    • Abbey(QIF,但不是 Abbey Business)
    • 联盟和莱斯特(OFX 和 QIF)
    • 巴克莱 (OFX)
    • 克莱兹代尔 (QIF)
    • Coutts & Co(OFX 和 QIF)
    • 第一直接 (QIF)
    • 哈利法克斯(OFX 和 QIF)
    • 汇丰银行(OFX)
    • 劳埃德 (QIF)
    • NatWest(OFX)
    • 全国 (OFX)
    • 苏格兰皇家银行(OFX 和 QIF)
    • 乐购(OFX 和 QIF)
    • 约克郡 (QIF)

    【讨论】:

    【解决方案2】:

    在欧洲,您可以使用www.agregadorfinanciero.com API。

    【讨论】:

      【解决方案3】:

      在网上查找Open Financial Exchange (OFX) 格式。这(我相信)是银行业的通用格式。

      【讨论】:

      • 在大多数银行不提供任何 API 的英国并不常用。
      • 好吧,那么英国银行就不会和我们玩了!!
      【解决方案4】:

      Intuit 正在推出新的数据服务,可通过安全 API 访问 18000 多家金融机构。我不知道他们是否会包括英国银行和金融机构,但这里是链接:

      https://developer.intuit.com/page/CustomerAccountData

      【讨论】:

      • 链接是 404 的。永远不要相信任何出自直觉的东西。他们的财务管理软件与桌面时代有着内在且密不可分的联系。他们已经收购了 mint.com 并让整个事情停滞不前。他们就像微软、棱镜或希特勒一样邪恶。
      • 网站说明:每月最低经常性费用:$1,000.00
      【解决方案5】:

      可以编写一个基本的屏幕抓取工具来从您的Mint.com 帐户中提取帐户交易。当然,这意味着你必须在那里设置一个帐户,让他们为你干这些脏活。

      CasperJS 是一个很棒的工具,它使这变得相当简单,您需要安装 Casper 和 PhantomJS,这是它所构建的框架。

      var casper = require('casper').create();
      
      casper.start('https://wwws.mint.com/login.event', function() {
          this.fill('form#form-login', {
              username: 'mintusername',
              password: 'mintpassword'
          }, true);
      }).then(function() {
          this.echo('Downloading transaction history...')
          this.download('https://wwws.mint.com/transactionDownload.event', '/path/to/save/transactions.csv');
      });
      
      casper.run(function() {
          this.echo('Done.').exit();
      });
      

      此脚本登录您的 Mint 帐户,并将您的交易历史记录(作为 CSV 文件)下载到您指定的任何位置。从那里,您可以对数据做您喜欢的事情。当然,这个脚本可以显着扩展以做更高级的事情,或者过滤它下拉的事务,但作为最佳实践,我建议保持屏幕抓取尽可能简单,并在程序的末尾添加逻辑.

      对于 Mac OS X,您可以使用 launchd 定期运行此脚本,对于大多数 Linux 版本,您可以使用 cron

      【讨论】:

      • 对于专门询问个人理财的问题,这可能是最好的解决方案。实际上,我要自己做这件事。 +1 向我展示 CasperJS
      • 使用wwws.mint.com/transactionDownload.event?startDate=07/01/… 按日期过滤。我敢肯定还有其他参数
      • 你知道有什么类似的解决方案可以在移动设备上运行吗? (由 casper 或 watir 之类的东西驱动的 webview 或 phantomjs)。我用谷歌搜索过,很确定没有,只是想问一下。
      • 哎呀。屏幕抓取。屏幕抓取一个已经使用屏幕抓取的产品!
      • @geedubb,同意。这并不漂亮,但他们使用屏幕抓取是有原因的,我宁愿抓取一个来源而不是可能几十个!
      【解决方案6】:

      对于那些不太担心为 OFX 转换器支付费用的人,该转换器旨在处理 Nationwide FlexAccount、电子储蓄和信用卡,请尝试Nationwide OFX Converter

      对于其他银行和信用卡,请尝试iCreateOFX Basic,对于投资文件,请尝试iCreateOFX Investment

      【讨论】:

        【解决方案7】:

        有一种称为 OFX (ofx.net) 的标准协议可能会满足您的需求。 Microsoft Money 和 Quicken 都使用它来更新数据。

        【讨论】:

          【解决方案8】:

          您可以尝试 Swift(请参阅 message types),但它不是您可以设置的那种东西,您必须与每个您想合作的机构交谈。

          【讨论】:

          • Swift 有点严肃,它需要 Swift 的会员资格(这很昂贵)、大量的安全繁文缛节等等!
          • 如果您想获得不属于您的帐户的帐户余额,我认为这是唯一的选择 - 毕竟这不是您想要向所有人开放的那种数据,并且杂项
          猜你喜欢
          • 1970-01-01
          • 2012-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多