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