ofx

Parse OFX files into a usable data structure.

npm install ofx
15 downloads in the last week
34 downloads in the last month
 _______  _______          
(  ___  )(  ____ \|\     /|
| (   ) || (    \/( \   / )
| |   | || (__     \ (_) / 
| |   | ||  __)     ) _ (  
| |   | || (       / ( ) \ 
| (___) || )      ( /   \ )
(_______)|/       |/     \|

Parse Open Financial Exchange (OFX) files into a usable data structure. Serialize objects into OFX file format.

parsing

var ofx = require('ofx');

fs.readFile('Account-1234-5678.ofx', 'utf8', function(err, ofxData) {
    if (err) throw err;

    var data = ofx.parse(ofxData);
    console.dir(data);
});

serializing

var ofx = require('ofx');

var header = {
    OFXHEADER: '100',
    DATA: 'OFXSGML',
    VERSION: '103',
    SECURITY: 'NONE',
    ENCODING: 'USASCII',
    CHARSET: '1252',
    COMPRESSION: 'NONE',
    OLDFILEUID: 'NONE',
    NEWFILEUID: 'unique id here'
};

var body = {
    SIGNONMSGSRQV1: {
      SONRQ: {
        DTCLIENT: 'value',
        USERID: 'user id',
        USERPASS: 'password',
        LANGUAGE: 'ENG',
        FI: {
          ORG: 'org',
          FID: 'fid'
        },
        APPID: 'QWIN',
        APPVER: '2100',
        CLIENTUID: 'needed by some places'
      }
    }
};

var ofx_string = ofx.serialize(header, body);
console.log(ofx_string);

Data

In your data returned, you will have the following properties:

  • OFX - a dump of the XML parsing as a js object
  • header - just the 'key:values' pairs from the top of the OFX file

caveats

This file format is yucky, horrible and just silly. This module helps parse the ones I know about. And it doesn't do it in a nice way either. It may or may not work for your own use - only by trying it will you find out.

If you discover a broken file, please submit an issue with the sample file.

This module takes the OFX format and does the following:

  • splits off the initial set of metadata (the "Key:Value" lines)
  • tries to mechnically turn the SGML into a valid XML format
  • turns the XML into a JavaScript data structure

Credits

Thanks to Christian Sullivan for writing banking.js, upon which some of this code is based. Many thanks for letting me use it.

Author

Written by Andrew Chilton - Blog - Twitter.

License

The MIT License : http://appsattic.mit-license.org/2012/

npm loves you