Friday, July 31, 2015

Money Sunset w/ Windows 10 x64

(comments closed)

I decided to be an early adopter of Windows 10 on our home PC, partly so that I could test Money and the PocketSense scripts.  I'm using the 64 bit version, so it may be different for Win32.

Error 1:  Explorer 6 Missing
It was a bummer to have an error pop up when I first started Money after the upgrade, saying something about needing Explorer 6.  A quick search led me to an easy fix, but buried in a forum, so I thought I'd post it here.  I'm sure others will have the same issue, unless Microsoft fixes it.

Change the following setting using REGEDIT as:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer]
Version = 9.11.10240.0  (originaly: 9.11.10240.16384)


If you're not familiar with regedit.exe, just search for it using Windows 10 search box, and then right-click and choose "run as administrator".  Find the above key in the settings tree, and change the Version value.

The change fixes the "need Explorer 6" issue.  I then tested the PocketSense script, and it worked correctly.  No update or change required for the Python 2.7 install, which is nice.

Error 2: Money Deluxe has stopped
Once Money is running, it may crash with the dreaded "Money has stopped" message.  This issue had been fixed by Microsoft w/ Windows 8, but they seemed to have missed it with 10 thus far.  The fix (for now?) is to update the mnyob99.dll file, which was (elegantly) reverse-engineered by Raymond Chen (discussed here, and summarized by Dan).  In short, you need to replace this file.  You can download a patched version here, and copy to your C:\Program Files (x86)\Microsoft Money Plus\MNYCoreFiles folder.  I'm using it myself with Money Plus Sunset, with no worries.

96 comments:

  1. Note that pocketsense can be used with Quicken as well as Money. I use it with Quicken Mac 2015 to import data from institutions that provide OFX data but are not supported by Quicken Mac. No changes are needed to get the OFX file (the xfr directory needs to be created manually). Small changes required to display quotes in a browser.

    ReplyDelete
    Replies
    1. On windows it is trickier, since Quicken Windows does not accept OFX files. It only accepts QFX files, which are, in fact, OFX files with some additional Intuit-specific parameters. The one that is needed is , which is a code number given by Intuit to each supported institution. An appropriate line needs to be added to the OFX file. These are hard to find for each institution, but you can use any valid number as long as it is not for another institution in your portfolio.

      Delete
    2. Note that MSFT has issued a fix for Windows 10 and hacking the registry is no longer needed. However, since yesterday, I can no longer use pocketsense. See below:
      Traceback (most recent call last):
      File "C:\Users\XX\Documents\MSMoney\Archives\ofxpy_pocketsense (March 2013)\Getdata.py", line 103, in
      status, ofxFile, htmFileName = quotes.getQuotes()
      File "C:\Users\XX\Documents\MSMoney\Archives\ofxpy_pocketsense (March 2013)\quotes.py", line 387, in getQuotes
      sec.getQuote()
      File "C:\Users\XX\Documents\MSMoney\Archives\ofxpy_pocketsense (March 2013)\quotes.py", line 133, in getQuote
      self.datetime = datetime.strptime(self.date + " " + self.time, "%m/%d/%Y %I:%M%p")
      File "C:\PROGRA~1\Python27\lib\_strptime.py", line 325, in _strptime
      (data_string, format))
      ValueError: time data '9/11/2015 0:26am' does not match format '%m/%d/%Y %I:%M%p'

      Delete
    3. The error isn't related to Windows, but is a bug in the script for parsing the time provided by yahoo (wrong parser format). I'll patch that, and update soon.

      That said, I noticed from the error dump that you're probably running an older version, so it will be a good idea to update.

      Delete
    4. Patch applied and ready for download.

      Delete
  2. I have applied the update. Worked like a charm! Thanks Robert!

    ReplyDelete
  3. Longtime Money user and just now running across your blog and fix....just curious - will this work with the Money Home & Business version?? thanks!

    ReplyDelete
  4. I guess I was meaning the entire pocketsense scripts for importing bank info and all the steps you list on the blog. I have Win7 pro so I'm not looking for the 10 patch.

    ReplyDelete
  5. Anyone having issues with Chase? I keep getting the following (tags removed for posting): CODE 15510 Message: Please verify your identity within the next 7 days. Using your desktop computer, go to your bank’s website and visit the Secure Message Center for instructions.

    There is no "secure mail" in the secure message center. Chase is clueless.

    There is some information here (see post #14) for gnucash: http://gnucash.1415818.n4.nabble.com/Issue-downloading-transactions-from-Chase-td4681665.html but most of is way over my head.

    Any help would be greatly appreciated.

    ReplyDelete
    Replies
    1. Perhaps I'm not as clueless as I give myself credit for.
      I think I have narrowed down the problem to the ClientUID. There's one at the bottom of the sites.dat file. The clientuid has to be unique for each chase login.

      Delete
    2. I just went into sites.dat and added 103 to the OFXver: line in the Chase entry. Ran Setup.py, and tested the Chase account. The file downloaded no problem. A little while later I went to Chase.com checked my messages and clicked the new message to activate Quicken Downloads. Followed the prompts and now we wait to see if it fixed it for good.

      Ray

      Delete
    3. Interesting. My understanding was that the ClientUID was intended to be a globally unique ID for the bank to verify the user between connections, and that it shouldn't change. Chase wants a different value each time? I could add an option to do this "by site", if that's the issue. (?) Thanks for pointing it out.

      Delete
    4. I can confirm that the ofxVer solution to Chase appears to have worked for me. I did the same as Anonymous on Dec 5 - namely add ofxVer:103 to Chase section of sites.dat and then confirm via Chase's secure messaging system. Hopefully the solution will stick.

      Delete
    5. I didn't think to ask about that. The ClientUID parameter is only used when the site ofxVer is 103. The default is 102, so if this parameter isn't defined for the site, and the server only accepts 103 connections, it will fail. Setting ofxVer: 103 should be the correct solution.

      Delete
    6. So I am the one who posted the original and subsequent ideas for the fix (which don't quite work all the way). I did change the ofxVer to 103. Since both my wife and I have unique chase usernames, the fix worked for one but not for the other. This is what led me to the conclusion that the two usernames need unique ClientUIDs (did some more scenario testing to figure that out). I would very much appreciate it if someone else can confirm that each unique chase username needs a unique ClientUID. If this is indeed the case, I would need a way to have a ClientUID per each username for each site.

      Robert...if you would delete that code snippet I posted, that would be appreciated. I don't want to lead someone down the wrong path. Once again, thank you for the great work you do here.

      Delete
    7. The easy fix for having unique ClientUID values for each person would be to install separate copies of the scripts in their own directories (his and hers, if you will). That would keep things separate (and simple). Just copy everything to another folder, and edit the sites.dat and delete the ClientUID line (if it exists). Run setup for each, to configure which accounts to update from that copy (probably just deleting all but hers in the second copy). The ClientUID value is created on first run for a new install, but only if it isn't found in sites.dat.

      That said, I'll consider supporting UID values "per site entry" as an alternative. The idea there would be to have a separate site entry for each user, but they would point to the same site. The benefit vs separate install folders would be gathering all data in one run, vs two.

      Delete
    8. I am having these problems with Chase, too. I called them and they were totally clueless, and almost totally non-responsive from a client service point of view. I did figure out, though, that I needed to move to OXFVer 103.

      As previous posts said, that seems to work just fine for my accounts, but it does not retrieve my wife's accounts. The error message I get is "An attempt to access your J.P. Morgan Chase data was denied. If you did not initiate this attempt, you should change your password immediately." I download my wife's accounts after mine.

      I follow what you said about creating a second set of files, and will do that if necessary. But I'd love it if you made the change to allow gathering data "in one run".

      Also, if you could keep in mind that those of us that are having the problem need to transition from the current failure to making it work, that would be great. That transition might be as simple as deleting the Client UID from our existing .dat file?

      Harold

      Delete
    9. Thinking through your thought of tying ClientUID to a site in Pocketsense, I'm worried that Chase may only allow one ClientUID per Chase USERID. Currently, I have two entries in sites.dat for Chase, one for BASTMT and one for CCSTMT (credit cards). I'm thinking that both might need to use the same ClientUID for each Chase USERID.

      I assume that Pocketsense now generates a ClientUID when it first runs with a new sites.dat file and sticks what it generated at the end of the sites.dat file with a label of ClientUID before it.

      Perhaps allow each line of Setup to specify a ClienUIDToken? Normally, it would be blank, and processing would continue exactly the way it works today, picking up (or generating, if first time), the ClientUID value from sites.dat. If a value IS specified, then look for (or generate) a ClientUIDxxxx on sites.dat, where xxxx is the specified token value.

      A similar thought is to allow a ClienUIDToken value on the sites.dat entry. Blank or unspecified will mean to do what it does now. If specified, then use it to determine/generate the ClientUIDxxxx value.

      Or perhaps, either on the sites.dat or on the setup data, let us say "yes" to some keyword, and that would generate a unique ClientUID for each unique USERID.

      Harold, thinking out loud

      Delete
    10. I think this is the option to go (if Robert would be willing to update the code):

      "Perhaps allow each line of Setup to specify a ClienUIDToken? Normally, it would be blank, and processing would continue exactly the way it works today, picking up (or generating, if first time), the ClientUID value from sites.dat. If a value IS specified, then look for (or generate) a ClientUIDxxxx on sites.dat, where xxxx is the specified token value."

      For me, it appears that I need to access Chase with a specific ClientUID for each login.

      Delete
    11. I've just run into this problem also, and I am confused. Could someone clarify the process for me? I assume that, in sites.dat, for my Chase entry, I should add an ofxVer line and enter 103 on that line. But I see a ClientUID line at the bottom. Do I just leave that alone? When I go to Chases SMS, do I do anything with the ID number they provide there? Or do I just ignore that number? (Of do I replace the ClientUID value with that number in my sites.dat file?

      Delete
    12. Thanks to others who have figured out this Chase problem; it was driving me crazy for months until I Googled and found this thread.
      Just to confirm for others what worked for me:
      1. I edited my "sites.dat" file, adding the line "ofxVer : 103" in each block that was associated with Chase. (I had two: one for bank accounts and one for credit cards.) Not sure if order matters, but I inserted the line after brokerid and before appid, following the empty site template that is part of the sites.dat file. The bottom of my sites.dat file already had a ClientUID line, which I left unchanged.
      2. I ran the Pocketsense scripts. Note that I did not re-rerun setup.py. I simply re-ran the script that had always worked before Chase changed their security. I still got the error from Chase this time, but almost immediately received a secure e-mail from Chase.
      3. The secure e-mail, with subject "Action Required for Quicken or QuickBooks users" included a "Confirm your identity now" link ,which I followed. It pre-populated a field with a PIN number as Ron Rosenfeld mentioned above, but I didn't use that number for anything.
      4. I then re-ran the Pocketsense script, and for the first time in many months, several Chase bank accounts and credit cards downloaded successfully into Money.
      Hope this helps someone!

      Delete
  6. I'm in the same boat with Chase, since I have business and personal accounts under different credentials. It looks like the ClientUID took for the business accounts, but now the personal accounts are getting the J.P. Morgan error (An attempt to access your J.P. Morgan Chase data was denied...). Having a site-specific UID seems like the solution - the user would have to be cognizant of that and make sure that the same UID is set for any accounts that use the same credentials (my two business accounts, checking & CC, would use the default ClientUID, but my personal checking and CC would have to use their separate shared ClientUID).

    ReplyDelete
  7. Hi All,

    So far so good with creating 'His' and 'Hers' instances of Pocketsense, along with adding ofxVer: 103 to the Chase < site > entry in sites.dat. Thank you Anonymous.

    I don't know if it was coincidence or not but I got a 'Confirm your Identity' email from JPM Chase right around the same time that I was tinkering with the two new Pocketsense instances. Oddly, I only got the email for the 'His' account.

    I'm using Moneydance in parallel with MS Money. This 'fix' has made it lot easier to update Moneydance as well.

    Thanks again, Anonymous.

    -Kevin N.

    ReplyDelete
  8. I had the exact same experience as you - I got the confirmation email for only one of the accounts, but they are both working now by setting up separate instances of Pocketsense.

    ReplyDelete
  9. Hi, Robert...

    Do you think that you will make any changes to accommodate the Chase changes above? Or should I just proceed with setting up two instances?

    Harold

    ReplyDelete
    Replies
    1. I missed your message before. I haven't had time of late to focus on this, so I'd proceed with setting up separate installs for now. If I add UID support at the site level, it will be easy to migrate back to a single install.

      Just to clarify my thoughts on this, the idea of using site-specific UID values was something that I thought may address the issue, with minimal change to how the scripts work, or how user accounts are defined. It's a little confusing, and I don't see a better way yet, but I was hoping something "cleaner" would come to mind. Once a change like this is made, it probably becomes permanent.

      Delete
    2. I added the second instance of Pocketsense and it worked for Chase.

      Harold

      Delete
    3. Regarding the Chase situation: thanks to the sleuthing work of others in the comments section here, I've patched my local copy of Pocketsense to support a per-site level ClientUID. This way, I can simply duplicate the site entry for each unique Chase login that I need to use. If there's a site-level ClientUID it will use the site-level value; otherwise, it falls back to the global one.

      Hope it's useful to others. Patch here:

      http://pastebin.com/9UJ333RZ

      - John

      Delete
  10. I've been receiving an error from Fidelity for the last few months:

    FIDELITY : XXXXXX : Getting records since: 20150906
    ** An ERROR occurred sending POST request to ofx.fidelity.com
    Exception type:
    Exception Val : [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

    FIDELITY_NETBEN : XXXXXX : Getting records since: 20150906
    ** An ERROR occurred sending POST request to nbofx.fidelity.com
    Exception type:
    Exception Val : [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

    Any idea what might be causing this?

    -Mike D

    ReplyDelete
    Replies
    1. I just replied to an email about the same issue from another user, and I assumed that either the Fidelity server certificate had expired, or become "invalid" by some other means. I looked around a little more, and saw that the latest python releases (2.7.9+) have enabled ssl certificate verification by default. This may be related, but only if a Python install has been updated within the same time mentioned (?).

      Delete
    2. I am running python 2.7.9, but it looks like I last updated it in May of 2015. The current version is 2.7.11, but I don't see anything about certificates in more recent release notes. I'll update and see what happens.

      Can I change PocketSense to not check the certificate? That sounds like a bad idea, but it'll keep Fidelity working. Alternatively, if I could determine the reason for the certificate failure I could report it to Fidelity.

      -Mike D

      Update: I updated to 2.7.11 and now Fidelity works. I don't know if it's because they fixed the certs or something with python.

      Delete
    3. I have been using PocketSense with Fidelity and have not experienced any issues with my Python 2.7.1.4 installation.

      Today, I tried setting it up on a new computer. I downloaded 2.7.11 from Python.org and 2.7.10 from ActiveState and both give the SSL certificate failure on Fidelity.

      So it is clearly not an issue with Fidelity, as I've used both configurations in one day and they both work. There is something going on with the underlying Python, but I don't know enough about Python to debug.

      Delete
    4. I should add the new machine (that doesn't work) is Windows 10 the old machine is WIndows 7, so that may have something to do with it too.

      Delete
    5. Update, I installed Python 2.7.1 on the Windows 10 machine and everything worked fin. The issue is definitely related to a change in Python's handling of SSL. I haven't tracked down, however, why only Fidelity has this issue.

      Delete
    6. I can confirm this error too and also Carlos N's April 3 comments .

      I have two machines running Money Sunset Ed., the same pocketsense scripts and Python 2.7.12. The only difference between the two machines is the OS. One with Win 7 x64 and the other with Win 10 x64.

      Pocketsense fails for FIDELITY on the Win 10 machine with the same SSL error reported by the OP. The same script on the Win 7 machine works fine.

      I had a look at the certificate handed out by https://ofx.fidelity.com using both Firefox and Chrome and both browsers showed the connection as secure and the certificate validating correctly. The certificate is issued by Entrust.

      I have not tried rolling back to 2.7.1 on the Win 10 machine. That maybe the next step.

      If anyone has another solution (besides rolling back) please let us know. Thanks.

      Delete
  11. Is anyone using Pocketsense to automatically download from Ally, American Express Bank, or Barclays? If so, can you share your Pocketsense site.dat entries?

    Harold

    ReplyDelete
  12. I'm just wondering how to use this for historical mutual fund quotes for the past year to update MS Money Plus Home & Business version 17. It works fine for current day quotes. Thanks.

    ReplyDelete
    Replies
    1. The quote interface only supports "last quote" updates. There is no facility to update "past periods".

      Delete
  13. Regarding the Chase situation: thanks to the sleuthing work of others in the comments section here, I've patched my local copy of Pocketsense to support a per-site level ClientUID. This way, I can simply duplicate the site entry for each unique Chase login that I need to use. If there's a site-level it will use the site-level value; otherwise, it falls back to the global one.

    Hope it's useful to others. Patch here:

    http://pastebin.com/9UJ333RZ

    - John

    ReplyDelete
    Replies
    1. Hi John,

      Thank you for your work on this.

      Just so that I do this correctly, do I make the alterations to ofx.py and site_cfg.py prior to ever running setup.py or do I run setup.py, create sites.dat and then make the alterations?

      TIA -Kevin N.

      Delete
  14. John,

    Nice job and it seems like the cleanest strategy. Hopefully Robert will fold it in so that future updates won't have to be repeatedly modified. As more banks incorporate ofx version 103, this will make things easier for those having multiple accounts at those banks. So John, do you just make up other unique clientUID numbers yourself?

    Dan

    ReplyDelete
    Replies
    1. Dan,

      Thanks. Yes, I am using uuidgenerator.net, which was mentioned in the link that Anonymous on Dec 5 shared: http://gnucash.1415818.n4.nabble.com/Issue-downloading-transactions-from-Chase-tp4681665p4681822.html

      Wasn't too bad actually, since you only need to do this setup once. FWIW, turns out Robert also has code in site_cfg.py to generate a global ClientUID (if one is not found) and write it back to sites.dat.

      Delete
    2. Hi Dan,

      I posted a reply to John who created the patch for the Chase Client UID problem but I haven't heard back from him.

      Have you been able to make the patch work?

      I have two Chase Credit Card accounts. (different account numbers, login ID's and passwords)

      I'm currently using His and Hers versions of Pocketsense as a workaround (which is fine) but I'd like to try and get the patch to work.

      TIA,
      -Kevin N.

      Delete
    3. Kevin, I have no need at present to try the patch, so for now until Robert is convinced to modify Pocketsense, I would stick to your current strategy. Volunteer to be a beta tester for Robert if he can be encouraged to modify his scripts ;)

      Dan

      Delete
    4. Hi Dan,

      Thank you for your reply. I tried the patch out but it didn't work for me. I don't see a secondary ClientUID in sites.dat so I'm probably not applying the patch properly.

      I don't want to risk pissing off Chase, so, like you said, I'll stick with my current His and Hers setup.

      Thanks again.
      -Kevin N.

      Delete
    5. Kevin,

      If you want to try out your patched version, I think you need to add siteClientUID to your sites.dat entries for additional accounts at Chase (your wife's account) and add your own value using uuidgenerator.net to generate a value.

      Delete
    6. Hi Dan,

      Thank you for your reply.

      I'll give that a try using the ClientUID that works in the 'Hers' version of Pocketsense.

      I'm assuming that I need to have two Chase entries in sites.dat. One using the global ClientUID (His) and one with the specific ClientUID (Hers).

      Would that be your assumption also?

      -Kevin N.

      Delete
    7. Yes, in theory that should be perfect ;)

      Delete
    8. Hi Dan,

      I can confirm now that adding siteClientUID to the list of items in the Chase 'Hers' < site > entry in sites.dat, along with entering a ClientUID value, does indeed work as expected.

      The Chase 'His' entry uses the global ClientUID, while the Chase 'Hers' entry uses the site specific ClientUID.

      Thank you for giving me the little extra nudge to try this out. :)

      And of course, thanks to Robert and John for their work on this.

      -Kevin N.

      Delete
    9. Thanks for the confirmation. I'll do a write-up in my blog to help others in the future. John was having a difficult time commenting on this blog at the time, but since I had subscribed to the thread, I got emails with his repeated entries providing more information.

      If Schwab ever switches to OFX 1.03, I'll need to implement this patch myself.

      Delete
    10. Hi Dan,

      Ah, now I see the little 'Notify Me' checkbox at the bottom of the reply window. I am currently 'Following' this Pocketsense blog but I'm not being notified of new posts. I've been popping back in here now and then for updates.

      How did you 'Subscribe' to John's thread when you hadn't posted to it?

      I look forward to the write-up on your blog. Perhaps you could post a link here to it here.

      -Kevin N.

      Delete
    11. My write-up is at http://microsoftmoneyoffline.wordpress.com/2016/04/26/resolving-errors-for-those-having-multiple-accounts-at-chase-and-other-ofx-103-banks/

      I am following this blog, rather than subscribing to John's thread as I had stated. :)

      Delete
    12. Hi Dan,

      Nice job on the write-up and thanks for the clarification re: following vs. subscribing. :)

      One thing that should be stressed is that after making John's changes to ofx.py and site_cfg.py, the user still needs to manually add siteClientUID to the listed items in each relevant < site > entry in sites.dat.

      Per John's changes, the placement of siteClientUID should be after ofxver and before appid.

      I suppose some mention that for ofxver, 103 needs to be entered there as 102 is the default.

      -Kevin N.

      Delete
  15. John,
    Thanks for you replies. I don't know why they aren't showing up here, but I'll display it:

    Hi Dan, yes, I followed the instructions in the GnuCash link shared by Anonymous from Dec 5. Basically, use something like uuidgenerator.net to generate UUIDs. Or even this Python snippet (which is what Robert's code actually does to generate the global clientUID in sites.dat if one hasn't been defined in the file yet):

    python -c "import uuid; print str(uuid.uuid4())"

    ReplyDelete
  16. [for some reason my earlier reply ended up being deleted (moderated?), so re-posting again. If these posts are being deleted intentionally, could you at least mention in the comments why?]

    Hi Dan, yes, I followed the instructions in the GnuCash link shared by Anonymous from Dec 5. Basically, use something like uuidgenerator.net to generate UUIDs. Or even this Python snippet (which is what Robert's code actually does to generate the global clientUID in sites.dat if one hasn't been defined in the file yet):

    python -c "import uuid; print str(uuid.uuid4())"

    ReplyDelete
  17. Glad to hear it works John. That alone was a hangup for me, since I couldn't test, and there's the question of "per site" vs "per bank and user, but multiple site types (bank, credit, etc.)". I was only considering options where the script generates unique UUIDs, but if folks are fine with generating and entering their own, it's a simple update. I had other ideas for automating it, but if it's a minor group with the issue, it's easy enough to get UUID's online. Using separate installs will work, regardless.

    ReplyDelete
  18. Hi guys,

    I'm totally confused how to setup this clientUID in my Safari browser, can someone write a basic simple step by step direction how to get this done so that we can get past this connection error issue?

    ReplyDelete
  19. Hi Robert:
    You helped me get PocketSense working with both USD and CAD stocks a few years ago, which allowed me to keep using Money. It is great that you are still supporting PocketSense. I have just moved to a new computer running Windows 10. Money 2003 loads and runs with no problems, which is good. However, I am having a problem with PocketSense. I copied all the PockedSense files from Win 7 to the Win 10 PC. PocketSense starts and accepts commands, then runs through the quotes in sites.dat. However, it doesn't pause and ask if I want to view the quotes in a browser or import them into Money. With both Setup and Getdata the program stops and the command prompt box closes, leaving no chance to enter any further commands. I believe there are some error messages, but I don't have a chance to read them.
    Do you have any suggestions for what might be causing this?
    Richard

    ReplyDelete
  20. Richard,
    When you installed Python on your new PC, did you load the latest version 3 of Python by chance? The scripts were all written in Python 2, so the latest Python 2.7 needs to be installed instead.

    Also Cal discovered that he had to "Use legacy console" setting selection for the command windows to get Python to behave when he upgraded to Windows 10.

    Dan (ameridan)

    ReplyDelete
    Replies
    1. Hi Dan. Thanks for those suggestions. I have installed Python 2.7, and checked "Use legacy console" in the command window, but PocketSense still close after getting all the quotes, and I can't read the error message....
      Do you know if there is any way to log or record error messages from the command prompt window?

      Delete
    2. I was able to get PocketSense to run properly, and not quit after getting quotes, by opening a command window as Administrator, and then entering the necessary commands in that window to go to the correct folder and run setup.py or getdata.py. If anyone reading this has a suggestion as to how to get PocketSense to open and run in an Administrator: command prompt/window, I would be very pleased to hear it.
      Richard

      Delete
    3. My workaround is to open a command window by right clicking on "command prompt" and choosing "run as administrator". I then run a short batch file that changes the directory to c:/program files/pocketsense, and then runs getdata.py. This takes about the same number of mouse clicks as running getdata.py by clicking on it directly, with only a few extra keystrokes to enter the name of the batch file, so I am happy with this solution.
      Richard

      Delete
  21. Select Properties on the shortcut used to activate your script and in the Security tab,insure that your username has the same permissions as the admin does. Also under the Shortcut tab, select Advanced, and check "run as administrator". All of your scripts in a subfolder of Documents? (or did you select a folder in c:?)

    Dan (ameridan)

    ReplyDelete
  22. Hi Richard: I suspect you installed the scripts to a protected folder (like program files)? If so, create a directory in your personal folder (c:\users\you), or some place like c:\bin\pocketsense, while logged in as yourself, and put the scripts there.

    If the above isn't the issue, verify that python was installed "for all users". Not sure what flavor you're using, but I've had good success with ActiveState installing correctly by default. Personally, I use Anaconda, since it contains full scientific package support by default, but it's a *big* distribution.

    ReplyDelete
    Replies
    1. Thanks! That is the simple solution, and much better than my "workaround".
      Richard

      Delete
  23. That's what I had suspected too - that's why I asked if you properly installed the scripts in your Documents folder ;)

    ReplyDelete
  24. I just noticed that the monthly mutual fund prices updates I have been doing, and which have apparently been accepted by MS Money Sunset with the message "Import Complete", have not actually been loaded/saved since I upgraded from Win8 to Windows 10 last July.

    I did the Regedit fix for the Explorer code at the time and Money has been working just fine, and has the PocketSense script which I updated to the latest version. And ideas on why it's not working? Thanks!

    ReplyDelete
    Replies
    1. Update: It's apparently only the ETF symbols that aren't being updated. Mutual funds are getting their current prices. I have tried putting the ETF symbols in both the stocks and funds sections with the same zero result. Any ideas on what is going on?

      Delete
    2. I missed this comment before... sorry. If you're using Yahoo, try the Google option instead and let me know.

      Delete
    3. Thanks Robert - that fixed it! I disabled Yahoo (Using Google was already set at Yes) and it worked! I did have to replace Yahoo's codes for the S&P 500 and NASDAQ Composite with Google's. Happy again!

      Delete
  25. Hi all - I switched to a new machine, had backed up my sites file to an external HD and before I had a chance to copy it over to my new machine, my external HD died :(
    I've had a very tough time recreating the sites file and many institutions are failing although I'm not getting much info from the error files. Any tips?

    ReplyDelete
    Replies
    1. Have you looked at your old OXF files? They may have some information on account names/numbers and version formats that could help you set up the new sites file.

      Delete
  26. Is it possible to use pocketsense with "express web connect"? From the Ally Bank Website:

    "Express Web Connect automatically downloads transactions from Ally Online Banking into Quicken. After launching Quicken, it will ask you to input your Ally Online Banking username and password, and answer your security questions. It will then automatically import your transaction information from your Ally account."

    This is something different than loging in to the bank account and downloading the file manually and importing it into the software. This is something relatively new that is available to Ally customers, so I was wondering if it was possible to use this in pocketsense, or if it would be possible to add this feature.

    Thanks in advance!

    ReplyDelete
  27. This morning I tried to connect Money to my Wells Fargo brokerage account but got a failure message saying - "The financial management software you are using is no longer supported. Please upgrade your software or contact us at 1-800-956-4442 for assistance."
    I am on Windows 10 with the latest version of the Pocketsense scripts. Has anyone any ideas?
    Thanks

    ReplyDelete
  28. Hi All,

    I got an email today from Fidelity. In the not too distant future they are implementing two-factor authentication to log on to their website. I'm not sure if this will effect their OFX server though.

    Fingers crossed.

    -Kevin N.

    ReplyDelete
  29. ted - In your Wells Fargo site data, try adding 2400 or 2500 for appver.
    kevin - In your Fidelity site data, when the switchover occurs, try adding 103 for ofxver.

    - Dan (ameridan)

    ReplyDelete
    Replies
    1. 2500 works for my Wells Fargo account. Thank you Dan!

      Delete
    2. Hi Dan,

      I'll give ofxver:103 a try when Fidelity implements the change.

      Thanks for the suggestion.

      I'll post back with my findings.

      -Kevin N.

      Delete
  30. Discover Bank has changed the way that it generates FITID's in its OFX. The old way was compatible with the regular Discover scrubber. The new FITID's look like SDF787949, SDF followed by a 6-digit number. It appears that all of the digits are significant, and do not change from day to day. However, they are not unique to one transaction.

    In my ofx, I have two checks cashed the same day, for the same amount, both downloaded with identical FITID's SDF908899. On another day, two checks with different amounts are downloaded with identical FITID's SDF718656. Also, two deposits on the same day of the same amount are giving the same FITID's SDF787949.

    I made the following changes to scrubber.py to fix this.

    In scrub():
    I made this change:
    if 'DISCOVERCARD' in siteURL:
    if 'CCSTMT' in accttype:
    ofx= _scrubDiscover(ofx)
    else:
    ofx= _scrubDiscoverBank(ofx)

    I duplicated _scrubDiscover() to _scrubDiscoverBank(). The only changes are
    scrubPrint(" +Scrubber: Processing Discover Bank statement.")
    and
    ofx_final = p.sub(lambda r: _scrubDiscoverBank_r1(r), ofx)

    I duplicated _scrubDiscover_r1() to _scrubDiscoverBank_r1(). The only changes are
    bx = len(fitid)

    I built the changes on the existing functionality. I have been successfully downloading my Discover Bank transactions using these changes since June 25.

    ReplyDelete
    Replies
    1. Thanks for posting this. I too use Discover Bank (and card), but don't really *use* the banking part, so don't see many transactions. I'll take a closer look.

      Delete
    2. Scripts have been updated to handle the Discover Bank (vs Discover Card) transaction formats.

      Delete
  31. OMG ... Thank you so much for creating this system! I've been running MS Money since 1999 and Chase just took away their OFX download option in the recent "upgrade." (How can an upgrade take away a feature?) Anyway, this is a lifesaver! It's even better than having to log on to their site to download. Wish I had found this sooner.

    ReplyDelete
  32. Hi RickMcKc,

    I'm not a Chase Banking client but I *am* a Chase Credit Card client.

    I'm not aware of Chase disabling their OFX server. They *do* offer an upgraded website though.

    The option to enable financial software downloads on the new site is a little on the hidden side. If you are indeed using the new Chase site, have you enabled this option?

    There is a lot of information on this forum page regarding Chase.
    http://pocketsense.blogspot.com/2015/07/upgrade-to-windows-10.html

    HTH -Kevin N.

    ReplyDelete
  33. Scripts have been updated to handle the Discover Bank (vs Discover Card) transaction format. The latest version has been posted as 18-Aug-2016.

    ReplyDelete
  34. Robert: Chase error "breaking" Pocket Sense. I noted this morning when downloading that there was an error flagged with my Chase account. Also, there was NO import of any of my accounts into MSMoney. Checking the chase*.ofx file (with notepad and a hex editor) showed the file to be entirely empty; and looking in the folder there was NO combine.ofx file (I may have the name incorrect). I also note that when trying to log in to the Chase web site, I cannot get past the login prompt -- with no error message. My thought: the Chase web site is down; nothing is being returned by the OFX query, and a blank .ofx file may cause PocketSense to not create the combined ofx file for import into MSMoney. Perhaps there is something else going on, but could you look into it? Thanks. Ron

    ReplyDelete
    Replies
    1. Hi Ron,

      I just tried logging on to the Chase website. I could not log on using Chrome but I could log on using MSIE and Edge.

      Pocketsense looks to be working as expected. I just don't have any activity to d/l.

      HTH -Kevin N.

      Delete
  35. Hi Robert,

    Can't see any other way to get in touch apart from here...

    I have been looking at the scripts on my laptop which has Python 3 installed, there are a few changes that I've had to make:

    multiple files
    * print statements require ()
    * <> replaced with !=

    ofx.py
    * module httplib replaced http.client
    * module urllib2 replaced urllib

    control2.py
    * raw_input replaced with input

    setup.py
    * raw_input replaced with input

    I've not spotted any other changes required yet but have only just dabbled with the scripts enough to get them working. Only then do I find that my bank (Nationwide Building Society) have scrapped OFX exports!! :(

    Any how, thanks for your efforts.

    John

    ReplyDelete
    Replies
    1. Thanks for the feedback John. Bummer re your bank. My CU doesn't support ofx either, but never did... so not missing anything. I mostly use it for investment & credit card transactions, w/ the bulk being credit card data.

      Delete
  36. I did the whole change over with my costco card. Now that I have citibank, I changed my accounts in the script. The problem I am having is that Citibank is downloading my entire history and ignoring the 30 day interval that is set. Any help much appreciated.

    ReplyDelete
    Replies
    1. It's not just downloading transactions I don't have listed....it is downloading all of them, every time.

      Delete
    2. I ended up marking the old entries void. It started working correctly and matching the rest of the transactions.

      Delete
  37. Hi All,

    Win 7 Home, MS Money Plus Deluxe v.17.0.120.3817

    Does anyone know of a hack or other means so as to prevent MS Money from attempting 'Online Updates' when the program opens?

    Each time that I open the program, the round, spinning, double-arrow thing in the upper right-hand corner spins around for several minutes.

    The spinning online updater, prevents me from importing my OFX file until the spinning stops.

    TIA -Kevin N.

    ReplyDelete
  38. Replies
    1. Hi Dan,

      I should have checked your blog first. ;)
      Thank you, it worked like a charm.

      -Kevin N.

      Delete
  39. Hi All,

    Regions Bank recently upgraded their website thus killing the connection to their OFX server.

    The new settings are:
    fiorg : Identity-RFG
    fid : 13131
    url : https://onlinebanking.regions.com/Ofx/process.ofx
    bankid : 261170740 (this setting remains the same as the previous one)

    Special thanks to Ian Little of the Moneydance support staff for proving the particulars.

    -Kevin N.

    ReplyDelete