银行API /协议

任何银行是否通过任何forms的API提供个人账户的数据馈送? 我基本上是要检查帐户上的余额,而不login到他们的网站。

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

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

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

API访问

如果他们提供直接访问的API,您将需要检查每个机构。 有些将通过拨号线提供接入,另一些则具有更现代化的基于IP的服务。 每个人都可能会要求您注册并支付费用。

更容易的是要求用户从银行下载他们的声明并将其导入到您的应用程序中。 大多数网上银行系统提供这种function。

格式

无论哪种方式,有银行支持的几种格式( 从这里取 )。

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

您可能会将OFX称为Quickbooks,Microsoft Money 2005或Sage Line 50.QIF有时称为Quicken 98或2000,或Microsoft Money 2003。

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

谁使用什么格式

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

  • 修道院(QIF,但不是修道院业务)
  • 联盟和莱斯特(OFX和QIF)
  • 巴克莱银行(OFX)
  • 克莱兹代尔(QIF)
  • Coutts&Co(OFX和QIF)
  • First Direct(QIF)
  • 哈利法克斯(OFX和QIF)
  • 汇丰(OFX)
  • 劳埃德(QIF)
  • 国民西敏寺银行(OFX)
  • 全国(OFX)
  • 苏格兰皇家银行(OFX和QIF)
  • 乐购(OFX和QIF)
  • 约克夏(QIF)

可以编写一个基本的屏幕刮板来从您的Mint.com帐户中提取帐户交易。 当然,这意味着你必须在那里build立一个账户,让他们为你干净的工作。

CasperJS是一个很好的工具,使得这个相当平凡,你需要安装Casper和PhantomJS,它是build立在它上面的框架。

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(); }); 

此脚本login到您的Mint帐户,并将您的交易历史(作为CSV文件)下载到您指定的任何地方。 从那里,你可以做你喜欢的数据。 当然,这个脚本可以被显着扩展来做更高级的事情,或者过滤它所拖拽的事务,但作为一个最佳实践,我会build议保持尽可能简单的屏幕抓取,并在程序结束时添加逻辑。

您可以使用适用于Mac OS X的launchd或大多数Linux版本的cron定期运行此脚本。

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

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

你可以试试Swift(见消息types ),它不是你可以设置的types,你必须和你想要的每个机构交谈。

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

对于那些没有公开关心付费的OFX转换器,旨在处理全国性的FlexAccount,电子储蓄和信用卡试用全国OFX转换器 。

对于其他银行和信用卡尝试iCreateOFX基本和投资文件尝试iCreateOFX投资 。

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