So today I completed our OFX (Open Financial Exchange) file import option, a task made monumentally simpler thanks to Andy Smith’s handy ruby library (thanks Andy!). I’ll explain what this is all about.
PocketSmith will take an import of your financial transactions from your bank or credit card provider, and crunch/sort/filter/make it dance for you. We’ve had fun reinterpreting the data so far, however we’ve really just gotten started as we have further plans to implement a range of innovative ways of getting the information to you. Simply put, we’re building in features that we want our respective online banking interfaces to have; the primary requirement being the ability to get the information we want as quickly and as easily as possible.
One of the challenges for us in making this feature accessible to the global community is the lack of common standards for exchanging financial data. The ’staple’ export from most online banking facilities is the CSV (comma-separated value) file. It’s a simple format – just a text file with comma-delimited values – that can be opened in a text editor, or an application such as Microsoft Excel in which it resembles a spreadsheet, however no two banks in New Zealand generate CSV files the same way. Some have header rows describing the account, and others don’t; the number of columns differ; the content within the columns differ; the dates are formatted differently; the list goes on.
As you can see, it’s not an ideal – nor productive – method for exchanging data. Certainly not for developers, anyway. Worst of all, the integrity of the data is not robust. For example, open and re-save a CSV in Excel and risk altering the contents of the file, making it unrecognisable by the importing application (Excel has a bad habit of changing the date formats in CSVs).
The first import feature built into PocketSmith takes CSVs from all New Zealand banks – so the application has to first analyse which bank a CSV has come from, after which it refactors and imports the data into the user’s PocketSmith account. The reason we take the trouble to do this is to make the feature as simple to use as possible for the user: insert file here, don’t worry about telling us how your CSV is formatted, or which bank it came from.
This has a number of clear limitations of course: we’d have to write code to suit every single bank we want to get data from. Surely there must be a better way!
Well there is. Financial data comes in other formats, two of the more popular ones are OFX (as described above) and QIF (Quicken Interchange Format). OFX is XML-based and therefore well-suited to streamlining via web services or some RESTful interface – which is the next big step for PocketSmith (hello banks!).
Even so, I suspect that the financial data saga won’t go away quite yet. As the feature was rolled into the beta tonight I glumly discovered that one local bank’s OFX file format isn’t quite kosher and therefore won’t be imported; and another offers CSVs and QIFs for download – but not OFX. Also, we’re getting the odd wibble when someone uploads a corrupt CSV, which must be confusing for a user who probably isn’t aware that they might’ve somehow tampered with the fragile nature of the file.
Someday (hopefully soon) we’ll get to easily streamline NZ transactions – read-only, of course – directly into PocketSmith from users’ bank accounts. Which would surely make life much more pleasant for all and sundry, in particular, yours truly.













