OFX download settings for Fidelity Investments, Fidelity Net Benefits, Janus, Bank of America, PNC Bank, ING Direct Bank, TD Ameritrade, USAA, Chase Bank, Schwab, Discover Card, Citi Card, CitiBusiness Card, Regions Bank, American Express, Capital One, Sears Card, OptionsXpress, VALIC, Vanguard, Scottrade, Chase card and Wells Fargo Advisors


[EDIT – Ressom provided additional input for American Express and Fidelity Net Benefits which I’ve also included below] [EDIT – ameridan added settings for VALIC on 12/25/2010]
[EDIT – ameridan added settings for Capital One & CitiBusiness Card on 1/16/2011 – thanks Ken!]
[EDIT – ameridan merged previously published settings for Chase Bank, Discover Card & Schwab on 1/16/2011] [EDIT – PHWhite provided additional input for TD Ameritrade on 1/19/2011]
[EDIT – Stephen provided additional input for ING Direct Bank on 1/20/2011]
[EDIT – ameridan merged previously published settings for PNC Bank on 1/28/2011]
[EDIT – hung le provided additional input for Sears Card on 1/29/2011]
[EDIT – ameridan added settings for OptionsXpress on 3/26/2011]
[EDIT – ameridan provided link to additional input for USAA on 4/19/2011]
[EDIT – Cal added settings for Wells Fargo Advisors on 10/6/2011]
[EDIT – Marc discovered new ofxVer setting for Capital One on 2/27/2013]
[EDIT – ameridan updated the URL for Citi credit cards on 3/15/2013]
[EDIT – ameridan added updated settings for Bank of America credit cards on 12/12/2013]
[EDIT – Ken added settings for Scottrade on 3/31/2014]
[EDIT – Robert updated settings for Vanguard on 9/24/2014]
[EDIT – Ken
added settings for Scottrade on 3/12/2015]
[EDIT – Ken added settings for Capital One Investing Sharebuilder on 12/5/2015]
[EDIT – Humble Pie added settings for Chase credit card on 12/6/2015]
[EDIT – hung le provided additional input for Chase credit card on 10/21/2016]
[EDIT – Kevin N added settings for Regions Bank on 12/30/2016]

Thank you Cal for the nice review of both my OFFLINE Blog and Bobby’s PocketSense site.   I am going to quote it here as it might provide assistance setting up FIDELITY Investments, Citi Card, and Vanguard accounts.

Regarding your Janus account, my experience is that without the FID number, you won’t get an error, but you won’t get data either – instead you probably get a list of your account numbers. I think this is how Money Online established the setup link of all accounts at any financial institution you engaged Online services for.     If you’ve  ever turned on logging in Money, you would note that you got 4 files for each set of transactions being downloaded (if you have multiple accounts, otherwise you only get 2).  The first  ***RQ.txt  file was the initial OFX file being sent by Microsoft Money.    The first  ***RS.txt  file was the response from the financial institution listing all of your account numbers.   Then the program proceeded to add the FID and the ACCOUNT NUMBERS for each account resulting in the second  ***RQ.txt  file that serves to reveal all of the OFX parameters that you need to get the PocketSense scripts to work.   It’s this second ***RQ.txt file that requests the OFX downloads for all of your accounts at that institution (***RS.txt).

If you don’t see what you are looking for below, make sure you check out the  Look Up Your OFX Settings  Blogpage with links to all of the other sources of OFX settings that I am aware of.

PHWhite also offered this tidbit regarding Ameritrade, but probably true in many other instances:

I had to call TD Ameritrade because transaction downloads for my accounts had been locked out because of my failed attempts, so even if you are using the right parameters it may not work until you call to get your accounts enabled for transaction downloads. I also needed to have TD Ameritrade reset the passwords.

OFX settings for various other  financial institutions (in no particular order yet) that can be copied directly into PocketSense’s sites.dat file



     SiteName : DISCOVER
     AcctType : CCSTMT    #credit card
     fiorg : Discover Financial Services
     fid  : 7101
     url  : https://ofx.discovercard.com 
     bankid : 
     brokerid :
     appid : 
     appver : 
     mininterval : 

 
     SiteName : Bank of America 
     AcctType : CCSTMT    #credit card 
     fiorg : HAN 
     fid  : 5959 
     url  : https://eftx.bankofamerica.com/eftxweb/access.ofx 
     bankid : 
     brokerid :
     appid : 
     appver : 
     mininterval : 

 
     SiteName : PNC   #(see note) 
     AcctType : BASTMT 
     fiorg : ISC 
     fid  : 4501 
     url  : https://www.oasis.cfree.com/4501.ofxgp 
     bankid : 041000124
     brokerid :
     appid : 
     appver : 
     mininterval : 


     SiteName : CHASE 
     AcctType : BASTMT 
      fiorg : B1 
      url : https://ofx.chase.com 
      fid : 10898 
      bankid : (use appropriate routing #) 
     brokerid : 
      appid : 
      appver : 
     mininterval : 
 
 
     SiteName : SCHWAB 
     AcctType : INVSTMT 
     fiorg : ISC 
     url  : https://ofx.schwab.com/cgi_dev/ofx_server 
     fid  : 
     bankid : 
     brokerid : 
     appid : 
     appver : 
     mininterval : 
 
 
     SiteName : TD AMERITRADE   #(see note1 and NEW note2) 
     AcctType : INVSTMT 
     fiorg : Ameritrade 
     fid  : 
     url  : https://ofxs.ameritrade.com/cgi-bin/apps/OFX 
     bankid : 
     brokerid : ameritrade.com 
     appid : 
     appver : 
     mininterval : 
 
 
     SiteName : AmEx 
     AcctType : CCSTMT     #credit card 
     fiorg    : AMEX 
     fid      : 3101 
     url      : https://online.americanexpress.com/myca/ofxdl/desktop/desktopDownload.do?request_type=nl_ofxdownload 
     bankid   : 
     brokerid : 
     appid    : 
     appver   : 
     mininterval: 
 
 
     SiteName : VALIC 
     AcctType : INVSTMT 
     fiorg : valic.com 
     url  : https://ofx.valic.com/eftxweb/access.ofx 
     fid  : 77019 
     bankid : 
     brokerid : 
     appid : 
     appver : 
     mininterval : 
 
 
     SiteName : CITICARD 
     AcctType : CCSTMT     #credit card 
     fiorg    : Citigroup 
     fid      : 24909 
     url      : https://www.accountonline.com/cards/svc/CitiOfxManager.do 
     bankid   : 
     brokerid : 
     appid    : 
     appver   : 
     mininterval: 
 
 
     SiteName : CITI BUSINESS CARD 
     AcctType : CCSTMT     #credit card 
     fiorg    : Citigroup 
     fid      : 26389 
     url      : https://www.accountonline.com/cards/svc/CitiOfxManager.do 
     bankid   : 
     brokerid : 
     appid    : 
     appver   : 
     mininterval: 
 
 
     SiteName : CAPITAL ONE   #(see comment) 
     AcctType : BASTMT     #bank accounts 
     fiorg    : Hibernia 
     fid      : 1001 
     url      : https://onlinebanking.capitalone.com/ofx/process.ofx 
     bankid   : 051405515 
     brokerid : 
     appid    : 
     appver   :
     ofxVer  :  103 
     mininterval: 
 
 
     SiteName : REGIONS BANK 
     AcctType : BASTMT     #bank accounts 
     fiorg    :  Identity-RFG 
     fid      : 13131
     url      : https://onlinebanking.regions.com/Ofx/process.ofx
     bankid   : 261170740 
     brokerid : 
     appid    : 
     appver   :
     ofxVer  :   
     mininterval: 
 
 
     SiteName : ING DIRECT BANK   #(see comment) 
     AcctType : BASTMT 
     fiorg    : ING DIRECT 
     fid      : 031176110 
     url      : https://ofx.ingdirect.com/OFX/ofx.html 
     bankid   : 031176110 
     brokerid : 
     appid    : 
     appver   : 
     mininterval: 
 
 
     SiteName : Wells Fargo Advisors 
     AcctType : INVSTMT 
     fiorg    : WF 
     url      : https://ofxdc.wellsfargo.com/ofxbrokerage/process.ofx 
     fid      : 12748 
     bankid   : 
     brokerid : Wells Fargo Advisors 
     appid    : 
     appver   : 
     mininterval: 


     SiteName : FIDELITY 
     AcctType : INVSTMT 
     fiorg    : fidelity.com 
     url      :  https://ofx.fidelity.com/ftgw/OFX/clients/download 
     fid      : 7776 
     bankid   : 
     brokerid : fidelity.com 
     appid    : 
     appver   : 
     mininterval: 
 

     SiteName : Janus Investments #(see comment)
     AcctType : INVSTMT 
     fiorg    : 
     fid      : 
     url      : https://ofx3.financialtrans.com/tf/OFXServer?tx=OFXController&cz=702110804131918&cl=50900132018  
     bankid   : 
     brokerid : dstsystems.com 
     appid    : Money 
     appver   : 1900 
     mininterval: 
 
 
     SiteName : FIDELITY NET BENEFITS 
     AcctType : INVSTMT 
     fiorg    : nbofx.fidelity.com 
     BrokerID : nbofx.fidelity.com  
     fid      : 8288 
     url      : https://nbofx.fidelity.com/netbenefits/ofx/download 
     appid    : 
     appver   : 
     minInterval: 30 
 
 
     SiteName : VANGUARD 
     AcctType : INVSTMT    #investment 
     fiorg    : Vanguard 
     fid      : 1358
     url      : https://vesnc.vanguard.com/us/OfxDirectConnectServlet 
     bankid   : 
     brokerid : vanguard.com 
     appid    : 
     appver   : 2300
     ofxver   : 103
     mininterval: 30     #may be optional now - Vanguard used to not like short intervals. 
 
 
     SiteName : SEARS CARD 
     AcctType : CCSTMT     #credit card 
     fiorg    : Citigroup 
     fid      : 26810 
     url      : https://secureofx.bankhost.com/tuxofx/cgi-bin/cgi_chip 
     bankid   : 
     brokerid : 
     appid    : 
     appver   : 
     mininterval: 30 
 
 
     SiteName : USAA 
     AcctType : BASTMT     #bank 
     fiorg    : USAA  
     fid      : 24591 
     url      : https://service2.usaa.com/ofx/OFXServlet 
     bankid   : 314074269 
     brokerid : 
     appid    : QWIN 
     appver   : 1900 
     mininterval: 

 
     SiteName : OPTIONSXPRESS 
     AcctType : INVSTMT    #investment  
     fiorg    : optionxpress.com 
     url      : https://ofx.optionsxpress.com/cgi-bin/ox.exe 
     fid      : 
     bankid   : 
     brokerid : 
     appid    : 
     appver   : 
     mininterval: 


     SiteName : SCOTTRADE 
     AcctType : INVSTMT    #investment  
     fiorg    : Scottrade 
     url      : https://ofx.scottrade.com/  
     fid      : 777
     bankid   : 
     brokerid : 
     appid    : 
     appver   : 
     mininterval: 

 
     SiteName : CAPITAL ONE INVESTING SHAREBUILDER 
     AcctType : INVSTMT    #investment  
     fiorg    : Sharebuilder 
     url      : https://ofx.sharebuilder.com  
     fid      : 5575
     bankid   : 
     brokerid : sharebuilder.com
     appid    : 
     appver   : 2300
     mininterval: 

  
     SiteName : CHASE CREDIT CARD  #(see comment for more)
     AcctType : CCSTMT     #credit card  
     fiorg    : B1 
     url      : https://ofx.chase.com  
     fid      : 10898
     bankid   : 
     brokerid : 
     appid    : QWIN
     appver   : 2400
     ofxver   : 103
     mininterval: 

-ameridan


Regarding my addon package to PocketSense, version 1 is a simple webpage that you can access via Money’s favorite tab.  The version 2 has been ready for a while based on an upcoming release of PocketSense that the author states will not only generate ofx files, but an html page that lists all of your investments with hyperlinks to the Yahoo detail webpage for those investments.  My webpage addon will simply include that as a “frame” and the page itself is somewhat more visually appealing.  It has changed somewhat from the example shown, but I can’t release it until Bobby completes the new version of his script, for obvious reasons.  🙂 click for larger image

Version 2 of ameridan’s OFFLINE webpage addon to Money

95 Comments »

  1. Ken H said

    Is anyone successfully downloading transaction data for Merrill Lynch (Merrill Edge)? I’ve used the available resources to come up with the following parameters but they don’t work:

    SiteName : MERRILL LYNCH
    AcctType : INVSTMT #brokerage account
    fiorg : Merrill Lynch & Co., Inc.
    fid : 5550
    url : https://taxcert.mlol.ml.com/eftxweb/access.ofx
    bankid :
    brokerid : http://www.mldirect.ml.com
    appid :
    appver :
    mininterval:

    Thanks for any help

  2. ameridan said

    Those match the latest Moneydance parameters other than appver = 2400. I don’t have Merrill Lynch accounts so, I can’t help much more, but also try ofxver = 103 and brokerid = mldirect.ml.com

  3. Ken H said

    Thanks. I tried your suggestions as well as several other minor tweaks with no success. The error msg that comes back is always: Your request cannot be completed at this time, for assistance please contact us at 1.800.MERRILL (637.7455).

  4. ameridan said

    Hung Le has noticed a few days ago that Chase has added a tag in the ofx/qfx credit card download that can’t be processed within Money. If you see suspect ❮category❯ tags in the download, it is very simple to add them to the bottom section of your scrubber.py file so that they will be removed.

  5. Bill Becker said

    I’ve run into an odd problem with downloads from TDAmeritrade. I have 3 accounts, and recently one of them downloads an empty file. The other two work fine. The successful downloads show that the OFX version is 102 and if I just test the problem account it still downloads an empty file so I don’t think that this is an OFX version 103 problem.

    I contacted TDAmeritrade support and they tried resetting the account password. This did not help, but in the process of resetting the account in the Setup.py file I discovered that if I try a test download with an an incorrect password the account downloads a proper OFX file with a “Signon invalid” message instead of an empty file. Because of this, I think that the Python script is issuing a proper query but TDAmeritrade’s server is not responding properly after authentication.

    Needless to say, TDAmeritrade’s technical support is not familiar with Pocketsense. I would like to provide them with information on the nature of the query that the Python scripts make to their server. I’m not a programmer so my quick scan of the Python scripts (Getdata.py and ofx.py) did not help. Is there a way to capture the queries that the scripts make so that I can help TDAmeritrade figure this out? Or maybe I could uncover a difference in the queries between the three accounts?

    • Cal Learner said

      I am surprised and impressed that TDAmeritrade is working with you at this level. Cool.

      Make a copy of ofx.py as ofx.py.bk0 so you have a copy of the unmodified file for later. This is a quick and dirty modification for a specific test.

      In ofx.py, there is a line at about line 286 that says

      if Debug: print query

      Follow that line with these three at the *same* indent level.

      qqf = open(ofxFileName+"qqf",'w') #log rq file to xfr as *.ofxqqf
      qqf.write(query)
      qqf.close

      Expect to find *.ofxqqf files in the xfr folder. These are the requests. You must delete these files manually after reviewing. They will contain your account username and password. When done testing, restore the original ofx.py by copying ofx.py.bk0 over ofx.py .

      Note you can use setup.py to test a single account rather than fetching all of your accounts.

      Also note that it is important that the ofx.py filename is all lower case.

    • Bill Becker said

      Yes, I figured out how to get to a TDA person that actually knows about their OFX server. They are investigating but, unfortunately, the problem is not yet fixed.

      I tried your suggested additions to ofx.py. It was a bit of a struggle because when I pasted your text into the file, the single and double quotes caused errors. I was able to sort it out using the IDLE editor and replace those characters. I got it running, but it does not write a .ofxqqf file to the xfr directory. It does write an ofx.pyc and an ofx_config.cfg file to the directory that contains ofx.py, but, if I understand correctly, these are created as part of running setup.py.

      Any idea on why the *.ofxqqf file is not created? If it helps, the error message from setup.py when testing just this account is:

      Invalid OFX statement.
      ** Review .\xfr\TDAMERITRADE20161230161129631933.ofx for possible clues…
      An online error occurred while testing the new account.

      and, as I mentioned above, the downloaded file is empty, – zero bytes.

  6. ameridan said

    I think your best bet may be to initiate a trouble ticket stating that your Quicken download isn’t functioning for that one account, since no bank will recognize Pocketsense (which mimics Quicken) as a proper query tool.

    My guess is that your issue may fix itself as the company realizes that your suspect account data isn’t linked properly to their ofx server.

  7. ameridan said

    Cal, since I can edit the comments somewhat, I thought I would try to help.

    Bill, does this work?

    [EDIT: This is how the query routine that works (in Bold) should be inserted into ofx.py (where ~ represents a space)]


    SendRequest = True
    if Debug:
    ~~~~print query
    ~~~~print
    ~~~~ask = raw_input('DEBUG: Send request to bank server (y/n)?').upper()
    ~~~~if ask=='N': return False, ''

    #log rq file to xfr as *.ofxqqf
    qqfFileName = ofxFileName + "qqf"
    qqf = open(qqfFileName,'w')
    qqf.write(query)
    qqf.close()

    #do the deed

    • Bill Becker said

      [edited by ameridan because of indenting issues]

      Ameridan – Tried your modifications but still just writes the empty *.ofx file, – there is no *.ofxqqf file. Here’s what I have in ofx.py:
      (where ~ = a space).
      .
      .
      SendRequest = True
      ~~~~ if Debug:
      ~~~~~~~~ print query
      ~~~~~~~~ qqfFileName = ofxFileName + "qqf"
      ~~~~~~~~ qqf = open(qqfFileName,'w')
      ~~~~~~~~ qqf.write(query)
      ~~~~~~~~ qqf.close()
      ~~~~~~~~ print
      ~~~~~~~~ ask = raw_input('DEBUG: Send request to bank server...
      ~~~~~~~~ if ask=='N': return False, ''

      ~~~~ #do the dee
      .
      .
      .

      Maybe I mistyped something?

      Is the fact that the *.ofx file returned from TDAmeritrade is empty have any effect? I also tried this with a working TDAmeritrace account and it does not generate a *.ofx.qff file either, but maybe that is expected?

      Just out of curiosity, where does the debug variable get set? Is it the case that this sequence only gets executed when debug=true?

  8. ameridan said

    I don’t think Cal meant it to be part of the Debug print which is why he mentioned indent level. Unfortunately, WordPress commenting keeps messing up the indents. I think his query print routine is supposed to be outside of (and just after) the debug print query routine.

    This won’t change the blank ofx file. I think Cal was suggesting a solution to your question:

    Is there a way to capture the queries that the scripts make so that I can help TDAmeritrade figure this out?

    • Bill Becker said

      I see the problem with WordPress and indents. I changed the indents as you suggested and now it works! This is just what I was looking for. Many thanks to both you and Cal.

      As I suspected, the queries are identical except for the expected differences, – account number, NEWFILEUID, password, etc. But now I have something to send to TDAmeritrade if I need to provide them with more information.

      Given the holiday, I will hold off contacting them until the first part of next week. I’ll let you know how I make out.

      Happy New Year to you both!

  9. ameridan said

    Nice routine to have around. Thanks Cal! It’s nice to see the query the bank’s ofx server actually works with and note how very close to a Quicken query it must actually be 😉

    Be aware that the .ofxqqf files in the xfr folder are “deleted” along with all of the existing .ofx files when getdata.py is next executed, but as Cal stated, you don’t want these files lurking about.

    Happy New Year to all!

    • Cal Learner said

      Ameridan said “Be aware that the .ofxqqf files in the xfr folder are “deleted” along with all of the existing .ofx files when getdata.py is next executed”
      Actually, I did not know that. Serendipity. I knew *.txt files etc do not get deleted, but it turns out that windows includes *.ofxqqf files when you glom “*.ofx”. I wish I had planned that on purpose. To have made the files not get deleted, I could have added a dot after the first quotation mark in the open line, like this:
      qqf = open(ofxFileName+”.qqf”,’w’)
      That way the extension would have been .qqf and would not match *.ofx for the deleting. I think automatic deleting is better for most purposes.

      Those who have tried the code snippet have figured out that the
      “~~~~~~~~qqf = open(qqfFileName,’w’) #log rq file to xfr as *.ofxqqf” is on one line in the file. I put the tildes in to represent the leading indent spaces. To make the word wrap on this blog not mess the format up, I could have entered the comment as a separate line. (Anything after an unquoted “#” character on a Python line is a comment)

  10. ameridan said

    Thanks Cal. I’ve edited the comment to reflect your suggestion for the query routine.

    • Cal Learner said

      More readable that way.

      Note “qqf.close” vs “qqf.close()”; I know that the close does not need the parentheses. Maybe those two are equivalent. However the original three close statements in ofx.py don’t have the parentheses. 😉

  11. ameridan said

    I noticed that the “write” file close statements did (vs. the “read” file close statements). Bill had stated the routine didn’t work, but it turned out to be for a different reason and I never actually tried yours, which may indeed work as written 😉

    • Cal Learner said

      After reading some documentation, I now see that having the parentheses is the more standard way. Thanks.

  12. Bill Becker said

    Update – I finally talked with a helpful TDA tech support person and he claims that they were able to access the problem account using the Quicken interface without issues. Unfortunately, I still get an error. I did get the tech support person’s email address and a commitment to investigate further it I can provide more information. I am wondering, – is there is a way to see exactly what the ofx server is returning to Pocketsense for this account? When I test it using setup.py the error message is “invalid ofx statement” but the downloaded ofx file is empty. Does that message indicate that nothing is returned? Or is a malformed file returned and Pocketsense writes an empty file?

  13. ameridan said

    Have you tried setting Debug to True in control2.py and then “testing” that account using setup.py?

    • Bill Becker said

      Just tried it. Here’s what I see:

      DEBUG: Send request to bank server (y/n)?y
      Invalid OFX statement.
      ** Review .\xfr\TDAMERITRADE20170114224125244330.ofx for possible clues…
      Traceback (most recent call last):
      File “D:\Surfer\My Documents\Financial\Microsoft Money\PocketSense Python Scripts\ofx.py”, line 310, in getOFX
      raise Exception(“Invalid OFX statement.”)
      Exception: Invalid OFX statement.
      An online error occurred while testing the new account.

      The file TDAMERITRADE20170114224125244330.ofx is zero bytes.

      Does that help?

RSS feed for comments on this post

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: