OFX账单

之前一直给美国的一个银行生成OFX格式的账单,查了很长时间,可惜国内涉及到这的基本没有,国外也不是很全面,所以我将我生成的OFX格式的账单格式详细介绍一下,希望能给其他涉及到这个问题的朋友提供帮助。

       OFX是什么?OFX全称叫Open Financial Exchange(开放金融交换),它是一个在客户和金融机构之间进行金融数据和信息交换的广泛的框架标准。它允许金融机构直接连接用户。关于OFX的详细信息,可以登录OFX网站进行详细了解:www.ofx.net,从它的网站可以下载它的pdf文档说明,里面介绍的非常详细。

       根据我的了解,OFX就是一种用于银行提供给用户的包含用户财政信息的XML文件标准。用户可以从提供下载的银行网站下载OFX格式的银行账单,将它导入到财务管理软件进行查看,管理。

       我出于需要,需要生成一个OFX文件。我就对它的格式详细研究了一番。由于微软的Money软件和Intuit的Quicken软件用户群比较大,我主要以生成能够导入这两个软件的OFX文件和QFX文件。需要指出的是QFX文件也是基于OFX标准的。不过它是Intuit的Quicken理财软件所支持的账户文件。它和后缀为.ofx的文件只有很小的差别,后面会详细讲述。

      OFX文件格式,这是我所生成的能够正常导入到Money软件的一个OFX账单,OFX标准里包含很多信息,债务,保险,消费等等很多信息,我只根据我的工作需要生成包含消费信息的OFX账单。

--这是一个XML,所以应该包含xml声明。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

--下面是ofx声明,返回信息200意思是OK,版本是202等等,详细信息看一下ofx的PDF介绍。
<?OFX OFXHEADER="200" VERSION="202" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?>

--ofx标签开始
<OFX>

--<SIGNONMSGSRSV1></SIGNONMSGSRSV1>标记的信息集是必须包含的,它包括了<SONRS><LANGUAGE>等标记,用来指明请求返回的状态是OK,支持的语言,处理的时间等必要信息。OFX文件是客户发出请求后响应返回的信息,这需要用户和金融机构建立连接,详细信息可以在http://www.fi.intuit.com/ofximplementation/wcsteps/http://www.microsoft.com/money/fi.mspx

<SIGNONMSGSRSV1>
<SONRS>

--请求返回的状态
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>

--响应时间
<DTSERVER></DTSERVER>
--语言

<LANGUAGE>ENG</LANGUAGE>
<DTACCTUP></DTACCTUP>
</SONRS>
</SIGNONMSGSRSV1>

--银行事务包括,消费,收入等信息
<BANKMSGSRSV1>
<STMTTRNRS>

-- 是唯一标记ID
<TRNUID>1</TRNUID>

--请求返回的状态
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>

--具体事务
<STMTRS>

--币种
<CURDEF>USD</CURDEF>

--银行账户信息
<BANKACCTFROM>
<BANKID>银行ID</BANKID>
<ACCTID>帐号</ACCTID>
<ACCTTYPE>帐户类型CHECKING</ACCTTYPE>
</BANKACCTFROM>

--银行事务列表
<BANKTRANLIST>

--开始时间结束时间
<DTSTART>20071129000000</DTSTART>
<DTEND>20071129000000</DTEND>

-- 之间是具体的银行信息集。包括消费,收入等等。
<STMTTRN>
<TRNTYPE>类型是消费PAYMENT</TRNTYPE>
<DTPOSTED>时间20060417000000</DTPOSTED>
<TRNAMT>金额-31.16</TRNAMT>
<FITID>3</FITID>
<CHECKNUM>1</CHECKNUM>

--<SIC> 美国标准工业代码,用来分类,具体情况根据Money和Quicken所支持的有一定的不同。
<SIC>5511</SIC>
<NAME></NAME>
<MEMO>备注信息:Description:MARATHON ASHLAND 01Q63   

  Location:CARBONDALE   ,IL</MEMO>
</STMTTRN>
<STMTTRN>
<TRNTYPE>PAYMENT</TRNTYPE>
<DTPOSTED>20060417000000</DTPOSTED>
<TRNAMT>-9.73</TRNAMT>
<FITID>2</FITID>
<CHECKNUM>2</CHECKNUM>
<SIC>5511</SIC>
<NAME></NAME>
<MEMO>Description:ADVANCE AUTO PARTS #4811 

  Location:BLOOMINGTON  ,IL</MEMO>
</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>0.00</BALAMT>
<DTASOF>00000000</DTASOF>
</LEDGERBAL>
<AVAILBAL>
<BALAMT>0.00</BALAMT>
<DTASOF>00000000</DTASOF>
</AVAILBAL>
</STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
</OFX>

 下面是完整的可以正常导入到Money的OFX账单文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?OFX OFXHEADER="200" VERSION="202" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?>
<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<DTSERVER></DTSERVER>
<LANGUAGE>ENG</LANGUAGE>
<DTACCTUP></DTACCTUP>
</SONRS>
</SIGNONMSGSRSV1>
<BANKMSGSRSV1>
<STMTTRNRS>
<TRNUID>1</TRNUID>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<STMTRS>
<CURDEF>USD</CURDEF>
<BANKACCTFROM>
<BANKID>StateFarm</BANKID>
<ACCTID>4707880000060783</ACCTID>
<ACCTTYPE>CHECKING</ACCTTYPE>
</BANKACCTFROM>
<BANKTRANLIST>
<DTSTART>20071129000000</DTSTART>
<DTEND>20071129000000</DTEND>
<STMTTRN>
<TRNTYPE>PAYMENT</TRNTYPE>
<DTPOSTED>20060417000000</DTPOSTED>
<TRNAMT>-31.16</TRNAMT>
<FITID>3</FITID>
<CHECKNUM>1</CHECKNUM>
<SIC>5511</SIC>
<NAME></NAME>
<MEMO>Description:MARATHON ASHLAND 01Q63   

  Location:CARBONDALE   ,IL</MEMO>
</STMTTRN>

</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>0.00</BALAMT>
<DTASOF>00000000</DTASOF>
</LEDGERBAL>
<AVAILBAL>
<BALAMT>0.00</BALAMT>
<DTASOF>00000000</DTASOF>
</AVAILBAL>
</STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
</OFX>

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值