Hello, Steve, and welcome to the Gnucash-Devel list!

On 2020-05-31 10:00, Steve Burns wrote:
Hello everyone, my name is Steve.  This is my first post here.
I have been using GnuCash for many years.  It reminds me of Quicken from
the 90's, only it's much better.

I have recently come across an issue with importing QFX / OFX files in the
U.S.
Importing "version 1" style .qfx (like chase credit cards or my credit
union) work fine.  The qfx file starts off with:
OFXHEADER:100
DATA:OFXSGML
VERSION:102
...

As of 2020, American Express now creates qfx files with a new format.
They allowed the old format output for a few months, but now it is
completely gone.
The new format starts off with:
<?xml version="1.0" standalone="no"?><?OFX OFXHEADER="200" VERSION="202" ...


This looks to me like American Express used to generate QFX/OFX version 1 files, and now generate QFX/OFX version 2 files.

GnuCash refuses to extract any data from this file.


That's a problem!  If you rely on OFX file import, as I do, I can understand that this obstacle is very frustrating.


I haven't looked through the GnuCash source, but my guess is that we need to:
1) Ignore carriage returns, or make them optional.  Use spaces and tags to
delimit.  If the parsing code is line-based, this may be some work.
2) Be able to handle version 2 headers.  They contain no useful number
data, so this may be straightforward.
3) Ignore more ending tags, if necessary.  Maybe nothing to do here.

I think this is a necessary or high-need improvement to GnuCash.

I'm not the resident OFX expert, but my understanding is that GnuCash should already have the capability to import both version 1 and version 2 OFX files. I looked for a feature list statement like "GnuCash can import QFX" and "GnuCash can import OFX version 2.2", and din't find it. But I see a bug report against OFX 2.2 file import <https://bugs.gnucash.org/show_bug.cgi?id=796782>, which implies that it generally works, though with some exceptions. LibOFX <https://github.com/libofx/libofx/>, which I understand is the library which GnuCash calls to do the actual import, has mentions of OFX 2 support from almost its first version.

And Quicken needs to straight up support the file format, lack of carriage returns and version headers and end tags and all. There is a lot to it, the OFX version 2.2 spec <https://www.ofx.net/downloads/OFX%202.2.pdf> is 667 pages long. QFX is not the same as OFX. I have heard people refer to QFX as Quicken's bowlderised version of OFX. But for most purposes, I understand they are pretty interchangeable.

I understand why you would take the expedient of slicing up an OFX version 2 file to make it look more like an OFX version 1 file. I have to do an expedient slicing-up of OFX files from one of my banks to work around their mistakes in the files they generate, so I sympathise. However, this expedient approach is not the right way to get something as important as OFX support into GnuCash.

I suggest you proceed by treating this as a user-support situation instead of a feature-development situation. Ask on the gnucash-user list if anyone is also using QFX from American Express, and if it works for them. See if any of your other financial providers deliver OFX 2 files, and see if GnuCash imports those. File a bug report <https://bugs.gnucash.org/page.cgi?id=bug-writing.html> in the Gnucash issue tracker. And especially, see if you can modify one of the failing files so that you can post it to the bug report as a way for others to reproduce the problem. This will require you to strip out the sensitive information, while preserving the ability to demonstrate the failure.

I hope this is helpful. I'm looking forward to your contributions to GnuCash!

Best regards,
      —Jim DeLaHunt, software engineer, Vancouver, Canada


_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to