donavank wrote:I'd like to first reiterate the statement about this site being one of the best OFX sites around...
I am in a similar situation as bltallen where I work for a software company (as a business analyst). Today we have an application where the clients report their investments (stocks, mutual funds, etc) manually or through an "semi-automated" brokerage import process where the brokerage firm posts a flat file with position data (to our FTP site) for users with an account from that brokerage firm and is enrolled in the automated import. When then process the file to automate the entry of their investments into our application. At the request of our client we are looking into setting up an OFX connection to directly request the information rather than require the brokerage firm to post files, thus eliminating some of manually processing effort and the need to maintain separate data mappings for each brokerage. I have a couple questions.
1. Is there a way to request test data from a test server for a given financial institution? I am trying to create a data mapping for how we would store the response data and I am most interested in the SECLIST aggregate. I've read the OFX spec but would need to see actual data to really define the logic that would need to be used to integrate the OFX data into our database. I can't imagine that software developers would need real account credentials in order to determine the requirements for integrating the data and testing the results.
Every institution is different, uses different OFX servers and has different gotchas you have to check for. There isn't any automated way to get test data that I know of. Most FIs are not very knowledgeable about OFX.
I pasted a sample OFX file at the end of this message. You are probably interested in the POSSTOCK and BAL sections, too.
donavank wrote:2. Is there any information available as to the availability of the FI web servers? To put another way, is there information available about how much planned/unplanned down time is expected for each FI's web server? Are there certain days/hours that they bring the server down to perform routine maintenance activities?
Thanks!
donavan
It depends on the institution. In my own experience I have seen servers go down for a few hours at a time then come back up later. The downtime may be advertised somewhere. Who knows.
Here is the OFX snippet as promised:
OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:0F7418F4-27DD-4ED1-968E-60D792642CA9
<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
<MESSAGE>Success</MESSAGE>
</STATUS>
<DTSERVER>20090701200732</DTSERVER>
<LANGUAGE>ENG</LANGUAGE>
<FI>
<ORG>x</ORG>
</FI>
</SONRS>
</SIGNONMSGSRSV1>
<INVSTMTMSGSRSV1>
<INVSTMTTRNRS>
<TRNUID>8CCCCD65-13AF-4464-8990-5A0E108ACA3E</TRNUID>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
<MESSAGE>pr-kclstx-pp22-clientsys Success</MESSAGE>
</STATUS>
<CLTCOOKIE>4</CLTCOOKIE>
<INVSTMTRS>
<DTASOF>20090630211538</DTASOF>
<CURDEF>USD</CURDEF>
<INVACCTFROM>
<BROKERID>x</BROKERID>
<ACCTID>x</ACCTID>
</INVACCTFROM>
<INVTRANLIST>
...
</INVTRANLIST>
<INVPOSLIST>
<POSSTOCK>
<INVPOS>
<SECID>
<UNIQUEID>464287465</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<HELDINACCT>CASH</HELDINACCT>
<POSTYPE>LONG</POSTYPE>
<UNITS>x</UNITS>
<UNITPRICE>x</UNITPRICE>
<MKTVAL>x</MKTVAL>
<DTPRICEASOF>20090630120000</DTPRICEASOF>
</INVPOS>
</POSSTOCK>
<POSSTOCK>
<INVPOS>
<SECID>
<UNIQUEID>464287804</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<HELDINACCT>CASH</HELDINACCT>
<POSTYPE>LONG</POSTYPE>
<UNITS>x</UNITS>
<UNITPRICE>x</UNITPRICE>
<MKTVAL>x</MKTVAL>
<DTPRICEASOF>20090630120000</DTPRICEASOF>
</INVPOS>
</POSSTOCK>
<POSSTOCK>
<INVPOS>
<SECID>
<UNIQUEID>464287457</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<HELDINACCT>CASH</HELDINACCT>
<POSTYPE>LONG</POSTYPE>
<UNITS>x</UNITS>
<UNITPRICE>x</UNITPRICE>
<MKTVAL>x</MKTVAL>
<DTPRICEASOF>20090630120000</DTPRICEASOF>
</INVPOS>
</POSSTOCK>
<POSSTOCK>
<INVPOS>
<SECID>
<UNIQUEID>464287176</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<HELDINACCT>CASH</HELDINACCT>
<POSTYPE>LONG</POSTYPE>
<UNITS>x</UNITS>
<UNITPRICE>x</UNITPRICE>
<MKTVAL>x</MKTVAL>
<DTPRICEASOF>20090630120000</DTPRICEASOF>
</INVPOS>
</POSSTOCK>
<POSSTOCK>
<INVPOS>
<SECID>
<UNIQUEID>922908553</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<HELDINACCT>CASH</HELDINACCT>
<POSTYPE>LONG</POSTYPE>
<UNITS>x</UNITS>
<UNITPRICE>x</UNITPRICE>
<MKTVAL>x</MKTVAL>
<DTPRICEASOF>20090630120000</DTPRICEASOF>
</INVPOS>
</POSSTOCK>
<POSSTOCK>
<INVPOS>
<SECID>
<UNIQUEID>922908769</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<HELDINACCT>CASH</HELDINACCT>
<POSTYPE>LONG</POSTYPE>
<UNITS>x</UNITS>
<UNITPRICE>x</UNITPRICE>
<MKTVAL>x</MKTVAL>
<DTPRICEASOF>20090630120000</DTPRICEASOF>
</INVPOS>
</POSSTOCK>
<POSSTOCK>
<INVPOS>
<SECID>
<UNIQUEID>922042858</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<HELDINACCT>CASH</HELDINACCT>
<POSTYPE>LONG</POSTYPE>
<UNITS>x</UNITS>
<UNITPRICE>x</UNITPRICE>
<MKTVAL>x</MKTVAL>
<DTPRICEASOF>20090630120000</DTPRICEASOF>
</INVPOS>
</POSSTOCK>
</INVPOSLIST>
<INVBAL>
<AVAILCASH>x</AVAILCASH>
<MARGINBALANCE>x</MARGINBALANCE>
<SHORTBALANCE>x</SHORTBALANCE>
<BUYPOWER>x</BUYPOWER>
<BALLIST>
<BAL>
<NAME>MoneyMarket</NAME>
<DESC>MoneyMarket</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>LongStock</NAME>
<DESC>LongStock</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>LongOption</NAME>
<DESC>LongOption</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>0</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>ShortOption</NAME>
<DESC>ShortOption</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>MutualFund</NAME>
<DESC>MutualFund</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>Savings</NAME>
<DESC>Savings</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>BondValue</NAME>
<DESC>BondValue</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>AccountValue</NAME>
<DESC>AccountValue</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>PendingDeposits</NAME>
<DESC>PendingDeposits</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>CashForWithdrawl</NAME>
<DESC>CashForWithdrawl</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>UnsettledCash</NAME>
<DESC>UnsettledCash</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>CashDebitCall</NAME>
<DESC>CashDebitCall</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
<BAL>
<NAME>AvailableFunds</NAME>
<DESC>AvailableFunds</DESC>
<BALTYPE>DOLLAR</BALTYPE>
<VALUE>x</VALUE>
<DTASOF>20090701200736</DTASOF>
</BAL>
</BALLIST>
</INVBAL>
</INVSTMTRS>
</INVSTMTTRNRS>
</INVSTMTMSGSRSV1>
<SECLISTMSGSRSV1>
<SECLIST>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>9ZZZFD104</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>MMDA1</SECNAME>
<TICKER>MMDA1</TICKER>
</SECINFO>
</STOCKINFO>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>922908553</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>VANGUARD INDEX FDS REIT ETF</SECNAME>
<TICKER>VNQ</TICKER>
</SECINFO>
</STOCKINFO>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>922908769</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>VANGUARD INDEX FDS STK MRK ETF</SECNAME>
<TICKER>VTI</TICKER>
</SECINFO>
</STOCKINFO>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>464287465</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>ISHARES TR MSCI EAFE IDX</SECNAME>
<TICKER>EFA</TICKER>
</SECINFO>
</STOCKINFO>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>464287804</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>ISHARES TR S&P SMLCAP 600</SECNAME>
<TICKER>IJR</TICKER>
</SECINFO>
</STOCKINFO>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>464287457</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>ISHARES TR BARCLYS 1-3 YR</SECNAME>
<TICKER>SHY</TICKER>
</SECINFO>
</STOCKINFO>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>464287176</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>ISHARES TR BARCLYS TIPS BD</SECNAME>
<TICKER>TIP</TICKER>
</SECINFO>
</STOCKINFO>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>922042858</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>VANGUARD INTL EQUITY INDEX F EMR MKT ETF</SECNAME>
<TICKER>VWO</TICKER>
</SECINFO>
</STOCKINFO>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>464287226</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>ISHARES TR BARCLYS US AGG B</SECNAME>
<TICKER>AGG</TICKER>
</SECINFO>
</STOCKINFO>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>DeSotoEFA</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>ISHARES TR MSCI EAFE IDX</SECNAME>
<TICKER>EFA</TICKER>
</SECINFO>
</STOCKINFO>
<STOCKINFO>
<SECINFO>
<SECID>
<UNIQUEID>DeSotoVNQ</UNIQUEID>
<UNIQUEIDTYPE>CUSIP</UNIQUEIDTYPE>
</SECID>
<SECNAME>VANGUARD INDEX FDS REIT ETF</SECNAME>
<TICKER>VNQ</TICKER>
</SECINFO>
</STOCKINFO>
</SECLIST>
</SECLISTMSGSRSV1>
</OFX>