PocketSense ~ Discover downloads work now!!

Bobby’s PocketSense OFX script package ~ so far, this is is my favorite!! 

Wow!  I put out a request for a Python subroutine to clean up the Discover OFX file and within 3 days – Bobby wrote scrubber.py  that does exactly that.   Even though your data connection occurs via a secure, encrypted (HTTPS) connection using these scripts, he found a way to also encrypt all of  your locally stored personal account information right in Python, eliminating the need for a plain-text  BAT file with all of that information that I was in turn encrypting into an EXE file.  

He also wrote another script setup.py to simplify the setup process and he wrote an excellent installation and user’s guide that also has a link to the most recent version of his script package named  “PocketSense”, so that just about anyone will be able to import their financial data once their Microsoft Money program goes offline.

Having just tried it out within hours of it’s publication, I can attest to how easy it is to setup and how great it works – even with Discover transactions!

[UPDATE 3/4/2010]  Although PocketSense started out as an enhanced repackaging of  TFB’s automated script to address the aforementioned issues, in the past month it has really evolved (and there are more enhancements to come!) with many improvements, so if you couldn’t get  TFB’s script to function with your bank, give this package a try.  And if you want to be able to update all of your information by clicking on a link within Money, see my posting above regarding the webpage add-in to Money.


[NOTE]  One note to readers regarding Discover downloads – although the transactions will no longer replicate using this script method (thanks to his great scrubber routine), if you run these scripts in parallel with online updates  (this isn’t normal, but some of us want to gain confidence in the Python script method (or we’re Beta testing 🙂 )prior to halting online updates),  the transactions won’t be matched together as the transaction IDs still must differ slightly between the two methods. Simply choose the “Change” option to manually match the duplicates together and all is well.

Here are a couple of extracts from his write-up…

Money has a useful feature called import, which offers a back-door solution to gathering online updates.  In its simplest implementation, the user goes to each of their financial institutions and downloads their latest transactions, subsequently importing the resulting files into Money.  I guess that if you only have a single online account, this option wouldn’t be too onerous.  By no surprise, many of us have more than two or three accounts, and repeating this cycle over and over again every time we want to update would be less than satisfactory.  Fortunately, we don’t have to.   Thanks to OFX transaction servers, the dirty work can be done for you. I began looking into the option a few weeks ago and, during a Google search, ran across TheFinanceBuff web site.  His series, titled Replacing Money, presented a discussion of Python scripts that appeared to do what I wanted.  The article consists of a series of posts describing how he got started, the changes he made, and some alternatives he had considered.  As presented, the option requires a few computer skills that many users probably won’t feel comfortable employing, but it looked promising to me.

I started off with the notion that I would just fix a few issues that I was experiencing, and get things working.  I quickly ran into the issues with Discover, and soon found myself rewriting sections of the code and also putting a “wrapper” around it in the form of a setup routine.


Setup:  There is now a Setup.py routine for configuring account information.  This was necessary to implement user-name/password encryption.  If I had remembered how bad it is to write a command-line menu structure… I probably would have never started.

Security:  Passwords and user-names can be encrypted.  The encryption that I settled is standard DES, which accepts up to an 8-byte password (key).  This isn’t a crack-proof algorithm, but unless you’re running money for “da man”, it’s more than satisfactory for keeping even a techno-savvy thief from extracting your info.  As for the security of the code itself, it’s all “open”, meaning that anyone (yes… you) can look at the inner workings and see that nothing spooky is going on.  The code makes a secure connection directly with each institution and transfers data over that secure, encrypted link.  There is no other connections made and your information is not  being (silently) sent to somewhere in north Siberia.

Scrubbing the Statements:  As discussed here, I also ran into issues when downloading Discover Card transactions.  To fix that issue, I ended up implementing a “scrubber” routine that re-formats Discover transactions before sending them to Money.  The interface is “open”, meaning that it’s easy to add a “scrubber” for any other institution or statement format.

Thank you Bobby for sharing PocketSense with all of us that want to stick with Microsoft Money!!!

– ameridan



  1. Ken said

    Anyone notice that Discovercard downloads are no longer working? I’ve been getting errors for the last week. I’m assuming they changed the FI URL but can’t find any new information. If someone comes across the new info could you please post it? Thanks.

    • ameridan said

      This has happened before, and in the past it was always eventually fixed. I’m hoping that will be the case again. The server is responding, so I’m of the opinion that the FI URL didn’t change. The response from the server in the OFX file is:

      503 Service Temporarily Unavailable

      Service Temporarily Unavailable

      The server is temporarily unable to service your
      request due to maintenance downtime or capacity
      problems. Please try again later.

      I’ve made the following change to my control2.py so we can be confident is has nothing to do the version of Quicken pretending to request the OFX data. Discover should be getting “official” complaints from Quicken users, which is another reason I’m optimistic that it will get resolved.

      DefaultAppID = 'QWIN'
      DefaultAppVer = '2100' #was 1900 (Quicken 2011), now Quicken 2012

    • Ken said

      Greatly appreciate your response. I waited a week to see if it was something temporary before posting. Guess I’ll keep waiting. Glad to hear it’s not just me having the problem. Thanks.

  2. Ken said

    I just went in to make the change you mentioned to update the Quicken version. But I didn’t find those lines of code in control2.py. I thought the default Quicken version was set in site_cfg. Am I mistaken?

    • ameridan said

      From the version info at the top of site_cfg.py:

      # - Use DefaultAppID and DefaultAppVer from control2
      # - Add support for Quote html flags (show file after download)

      The appver I think you’re referring to are the individual site override parameters. You might be using an older version of Robert’s scripts, but that is not the cause of your Discover issue which is working again! 🙂

    • Ken said

      Looks like you may be the one using the older version 🙂 This from my site_cfg file:

      # site_cfg.py
      # http://sites.google.com/site/pocketsense/
      # define class to read and hold user-defined parameters
      # including sites, funds and stocks

      # Intial version: rlc: Feb-2010

      # Revisions
      # ———
      # 01-Mar-2009 * rlc
      # – Modified to include additional data fields (appid, appver, and brokerid).

      # 09-Sep-2010*rlc
      # – Add support for alternate Yahoo! quote site URLs

    • ameridan said

      Here’s my entire Revisions data:

      # Revisions
      # ---------
      # 01-Mar-2009 * rlc
      # - Modified to include additional data fields (appid, appver, and brokerid).

      # 09-Sep-2010*rlc
      # - Add support for alternate Yahoo! quote site URLs

      # 12-27-2010*rlc
      # - Removed support the old control.py control file

      # - Use DefaultAppID and DefaultAppVer from control2
      # - Add support for Quote html flags (show file after download)

      # - Added support for YahooTimeZone, yahooScrape, quote currency, timeoffset (site), and quote multiplier

      # 22-Mar-2011*rlc:
      # - Added support for alternate ticker symbol to send to Money (instead of Yahoo symbol)

      I think Robert meant the date to be Jan-2011 🙂

      As i said though, Discover is working again!

  3. Ken said

    Yep, Discover back on. Looks like I’m waaay back on my Python files. But since everything is working perfectly don’t think I’ll mess with it. Thanks again!

  4. RCS said

    I wish I’d come across this blog a long time ago. What countless hours updating stock prices. Thanks for the hard work done here by many folks.

    I set up PocketSense and the sites.dat file. In my case I only care about stock quotes so I only entered tickers and enabled option 6. I ran the setup again and get through the first part of the test. When I tell it to send results to Money (which I have running) I get:

    Send the results to Money (y/n)? y
    ‘\\vmware-host\Shared Folders\My Desktop\ofxpy_pocketsense’
    CMD.EXE was started with the above path as the current directory.
    UNC paths are not supported. Defaulting to Windows directory.
    The system cannot find the path specified.
    Press Enter to continue…

    From this you may notice that I’m running Windows in a VM on my Mac. Like many of you I couldn’t let go of Money.

    My questions:

    1. Is there a way to map the file location in a way that will work for the script?

    2. How can I manually pull in the resulting OFX file (to the account I created called ‘Ticker Data’)?

    3. Does anyone know why none of the following, ^DJI, DJI, DJIA, work in pulling back quotes in the script, but do when you type them in on Yahoo Finance? I don’t really need it, but an oddity to be corrected.

    Thanks for the help,


    • Mark B said

      RCS–In answer to your first question, I ran into the same error. I run Money on a Mac using Parallels.

      I was running Setup.py by clicking it in Windows Explorer. In order to get the path to the downloaded OFX file to resolve correctly, I did the following:

      1) Looking in Windows Explorer, I found the mapped drive that Parallels uses. In my case, this is “\\psf\Home”. Look under the “Computer” group in Windows Explorer for a drive mapped to “\\vmware-host\Shared Folders”. In my case, it was the Z: drive.

      2) I opened a Windows Command Prompt and typed “Z:” to switch to the mapped drive. Then I changed the working directory to my “ofxpy_pocketsense” folder. In your case, you would do this by typing “cd My Desktop\ofxpy_pocketsense”.

      3) From this directory, I ran Setup.py by typing “Setup”. When I tested the file and sent it to Money, Money opened and asked me to choose an account to associate the downloaded OFX file to.

      Hope this helps!


    • RCS said


      Thanks. I was able to drill down to the mapped ‘z’ directory. I still think I’m missing a step. When I run ‘GetData’ I chose the interactive mode to see what it did. It pulls down the quotes, states that I have no mapped accounts (I don’t since I only want stock quote updates), and then asks if it should update Money. I say yes, but I don’t see a corresponding action in Money.

      I thought the problem was that I didn’t add my ‘Tickers’ account to the setup, but to ‘Add an Account’ it asks for site data, which isn’t applicable here.

      The manual fallback is to just go to Money and import the file that resulted from ‘GetData’, but if I can avoid that, it would be the icing on the cake.

      – RCS

    • RCS said

      I have not made any progress on this. My method of just running ‘getdata.py’ and then manually importing from the resulting ‘xfr’ file works. I’m not sure if I’m missing something in my ‘sites’ file (empty right now) or something else. – RCS

  5. Zoltan said

    Im just looking for quote updates for my Investment accounts with MS Money Sunset. Im running Win 8. I added tickers to site.dat file, ran setup.py & getdata.py. When I go to import the ofx quote update to my MS Investment accounts I get the confirmation from MS that updates are successful however the values in my account remain the same.



  6. ameridan said

    RCS needs to associate .ofx and perhaps .qfx file to Money’s Import handler. See if this helps you. Perhaps you tried out Moneydance or Quicken and broke the association.

    Zoltan needs to follow the instructions on the Pocketsense site (sounds like you skipped a few steps including the dummy account).

  7. Zoltan said


    I followed the set up steps and ignored the site setting as well as statement download as I don’t need either. I created a dummy account as well. When I run run setup.py I select add/modify and 0 exit appears then enter site number, but i don’t need site. List accounts same thing 0. Test account works as all my tickers except one show up. Getdata says no accounts have been configured run set up which I do and the same thing happens as the first time. I can up load to quotes and import ofx file but values remain the same.

  8. Yuri said

    Hi there!
    I have one question: There are some companies that provide an APi service, which allows to import transactional Data from Financial institutions (Banks, Online Brtokers etc). As a result one can use their fee-based service without dealing with every FI by yourselves. Among such companies i Can name Intuit and Yodlee. Can anybody name any alternatives to them????

  9. ameridan said

    Not that work with Money. I think Mint is a cloud=based alternative though.

  10. ameridan said

    Please be aware that there was a new patch incorporated into the scripts on September 14, 2015, so grab the latest from the Pocketsense website.

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 )

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s

%d bloggers like this: