Wiki

Clone wiki

hleofxquotes / Download_OFX

Download_OFX

  • What: a Java tool to let you download OFX statement(s) from your FI (Financial Institution). Conceptually
    • You create a Financial Institution to represent your bank/brokerage.
    • Click on a button to Download from the above FI
    • Click on a button to Import which simply open the download OFX file. You can always manually open the OFX file (or manually import using your program: MS Money, Moneydance ...)
  • Prerequisites:
    • You will need Java installed. We need Java 11 or later.
    • You will need some setup information about your bank/brokerage and your account information (such as FI'id, FI's org, FI's url ...) - more on this later. There are some samples included with the tool to help you get started.

Download

  • Download the latest zip file (hleOfxQuotes-gui-Build_xxxxxxxx_yyy.zip) from 'Download' area.

Installation

  • Unzip to get folder hleOfxQuotes-gui-Build_xxxxxxxx_yyy
    Archive:  hleOfxQuotes-gui-Build_xxxxxxxx_yyy.zip
       creating: hleOfxQuotes-gui-Build_xxxxxxxx_yyy/
      inflating: hleOfxQuotes-gui-Build_xxxxxxxx_yyy/hleOfxQuotes-gui-Build_xxxxxxxx_yyy-exec.jar 
    

To start

  • Double-click on file hleOfxQuotes-gui-Build_xxxxxxxx_yyy-exec.jar to start OR from command line
    java -jar hleOfxQuotes-gui-Build_xxxxxxxx_yyy-exec.jar
    
  • At the bottom of the window, select tab "Statements"

Screen Shot 2020-12-06 at 11.15.43 AM.png

To create a new Financial Institution

  • File -> Financial Institution -> New FI
  • You will be presented with a dialog with a drop down list of some samples configurations. If one matches your bank, select it (for example: Fidelity). Otherwise, select "Other".
  • In the "Financial Institution" list, a new entry/row (for example: Fidelity) is added , select the new entry/row.
  • The bottom screen (tab "Properties") should be updated and show a bunch of values looking like this
    # Name of the Financial Institution (FI)
    fi.name=FI Sample
    
    # A good resource to obtain OFX info for your FI http://www.ofxhome.com/
    
    # FI Id
    # Some FI has id. Others don't. When in doubt, keep this value empty
    fi.id=1234
    ...
    
  • You will need to update the Properties tab content with setting appropriated for your
    • bank/brokerage
    • your account
  • If you use one of the sample configuration, then you almost there. Otherwise, you will need to read the comments embedded in the 'Properties' tab and the section label 'Configuration' below for guidance on how to make changes appropriated for your situation. IMPORTANT: Remember to save your change (popup menu Properties -> Save)

To Delete an Existing FI

Currently, it is not possible to delete an FI/account within the UI.

To disable

  • Just comment out the fi.url value
    #fi.url=https://ofx.fidelity.com:443/ftgw/OFX/clients/download
    
  • Save using popup menu Properties -> Save

To delete

  • Exit tool
  • Go to your FI directory: ${HOME}/fi
  • Delete the FI folder/directory.
  • Start tool

Verify Connection

  • Make sure that your authentication information are set appropriately. In particular, make sure the following values are set
    user.id=abcdef
    user.password=1234567890
    # and in some case CLIENTUID
    clientUid=123-abc-456
    
  • Select the FI/account row from the list, popup menu "Get Account Info". If success, you will get a dialog with a list of valid accounts associated with your authentication. You have a choice of copy the information onto the clipboard OR open the FI directory where you can further examine the OFX response.
    • accountInquiry-v1-req.ofx: has the OFX request
    • accountInquiry-v1-resp.ofx: has the OFX response
    • httpRequestHeaders.txt: has the HTTP request headers
    • httpResponseHeaders.txt: has the HTTP response headers
    • accountInquiry-v1-info.txt: list of valid accounts (result of 'Get Account Info')
  • Use the account(s) information to set values for 'account.1.id'

If you have USAA account, then your current web userName/password will NOT work. You will need to obtain another set of userName/password/clientUid. See this page for USAA specific information.

To Download OFX file

  • Select your FI (account) from the list.
  • Click on "Download" button.
  • If success, you will see a response in tab "OFX Response".
  • To import (essentially, open the OFX file), click on "Import" button. If you are using Moneydance, make sure that Moneydance is running first before clicking the "Import" button.

Download/Import vs Download All/Import All

  • Download will download ONLY the select row.
  • Import will import ONLY the select row.
  • The *All version will download/import ALL rows.

Files

Configuration files are stored in directory/folder named "fi" in either

  • your home directory
  • or in Windows's the Documents/ directory

You can change that using command line

java -Dfi.dir=/path/to/another/fi/directory -jar hleOfxQuotes-gui-Build_xxxxxxxx_yyy-exec.jar  

Configuration

Financial Institution

  • fi.name: Financial Institution name. This is just a label. Example:
    fi.name=AE #1
    
  • fi.id: Some FI has id. Others don't. When in doubt, keep this value empty. Example:
    fi.id=3101
    
  • fi.org: FI Org. Example:
    fi.org=AMEX
    
  • fi.url: URL where to connect to download statement. Example:
    fi.url=https://online.americanexpress.com/myca/ofxdl/desktop/desktopDownload.do?request_type=nl_ofxdownload
    
  • fi.brokerId: Some FI don't have Broker ID. When in doubt, keep this value empty. Example:
    fi.brokerId=
    

Additional resources for finding the appropriate FI settings

Credential

  • user.id: for login
    user.id=FIXME
    
  • user.password: password
    user.password=FIXME
    
  • clientUid: some bank (such as USAA) requires an additional authentication token called CLIENTUID. How to get this token is bank specific.
    clientUid=FIXME
    

OFX Settings

  • ofx.version: which OFX version to use. Possible values are
    • 1: is a safe choice to start
    • 2: gives response that is a well-form XML file. Easier to parse.
      ofx.version=2
      
  • requestType: One of the following
    • investment (support v1, v2)
    • bank (support v1)
    • creditCard (support v2)
      requestType=creditCard
      
  • startDate: Send info posted after a given date. Same as OFX's DTSTART
    • Two formats:
      • -N: last N days
      • yearMonthDay (in GMT)
        startDate=-30
        #startDate=20110101
        

Accounts

  • accounts:List of accounts that you have with this FI. Number of accounts. Example:
    accounts=1
    
  • account.N.id: account ID. Example
    account.1.id=FIXME
    

Another example with two accounts

# Another example. This FI has two accounts. Note the usage of 'account.N.key' as the key name.
# Number of accounts
#accounts=2
# Account ID #1
#account.1.bankId=123456
#account.1.id=987654321
#account.1.type=CHECKING
#account.2.bankId=123456
#account.2.id=987654321
#account.2.type=SAVINGS

Configuration Samples

Troubleshooting

Q. I get the following error

Exception in thread "main" java.lang.UnsupportedClassVersionError: app/GUI has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
...

A. We need Java version 11 or later. You can download latest version of Java at https://adoptopenjdk.net/

Command-line mode

To run hleofxquotes in command-line mode, see this wiki page.

Updated