是否有银行通过任何形式的 API 提供个人账户的数据馈送?我本质上是在不登录他们的网站的情况下查看账户余额。
我记得在某个时候读过有关通用银行协议的信息……也许 mint.com 使用它来访问帐户?mint.com 是否与每家银行都有特殊关系,或者我可以利用他们的方法吗?
编辑:根据我的要求,我只对访问自己的财务数据感兴趣。
是否有银行通过任何形式的 API 提供个人账户的数据馈送?我本质上是在不登录他们的网站的情况下查看账户余额。
我记得在某个时候读过有关通用银行协议的信息……也许 mint.com 使用它来访问帐户?mint.com 是否与每家银行都有特殊关系,或者我可以利用他们的方法吗?
编辑:根据我的要求,我只对访问自己的财务数据感兴趣。
在网上查找Open Financial Exchange (OFX) 格式。那(我相信)是银行业的通用格式。
API 访问
您需要与每个机构核实他们是否提供用于直接访问的 API。有些将通过拨号线路提供访问,有些则提供更现代的基于 IP 的服务。每个都可能要求您注册并支付费用。
更简单的是要求用户从银行下载他们的对帐单并将其导入您的应用程序。大多数网上银行系统都提供此功能。
格式
无论哪种方式,银行都支持多种格式(取自此处)。
您可能会看到 OFX 被称为 Quickbooks、Microsoft Money 2005 或 Sage Line 50。QIF 有时称为 Quicken 98 或 2000,或 Microsoft Money 2003。
CSV 格式将是每个机构专有的,并且需要为每个实例开发解析逻辑。
谁使用什么格式
支持 OFX 或 QIF 格式的英国银行有:
可以编写一个基本的屏幕抓取工具来从您的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定期运行此脚本。
Intuit 正在推出新的数据服务,可通过安全 API 访问 18000 多家金融机构。我不知道他们是否会包括英国银行和金融机构,但这里是链接:
您可以尝试 Swift(请参阅消息类型),但它不是您可以设置的那种东西,您必须与您想与之合作的每个机构交谈。
有一种称为 OFX (ofx.net) 的标准协议可能会满足您的需求。Microsoft Money 和 Quicken 都使用它来更新数据。
对于那些不太担心为 OFX 转换器支付费用的人,该转换器旨在处理 Nationwide FlexAccount、电子储蓄和信用卡,请尝试Nationwide OFX 转换器。
对于其他银行和信用卡,请尝试iCreateOFX Basic,对于投资文件,请尝试iCreateOFX Investment。
在欧洲,您可以使用www.agregadorfinanciero.com API。