github libofx/libofx 0.10.0

latest releases: 0.10.9, 0.10.8, 0.10.7...
3 years ago

2021-01-03, LibOFX 0.10.0:

- Issue #34 fixed: Remove unimplemented function from libofx.h header
- Issue #30 fixed: Return error value if file parsing is unsuccessful in libofx_proc_file
- Issue #29 fixed: Use given parameter for actual file type in libofx_proc_file

- Large contribution adding investment / security handling in OFX files, by jeffjl74.
- ABI-breaking change, hence MINOR version incremented (due to MAJOR still at zero), 
  but libofx.h API should only have additions
- Details:
    - jeffjl74 Enhanced handling of investments in OFX files (support not added to OFC)
    - increased OFX_SECNAME_LENGTH to match the OFX spec (ABI-breaking change, hence MINOR version incremented)
    - OfxSecurityData now includes:
        - an enum for the type of the security (stock, bond, fund, option)
        - the optional <SECINFO> fields
        - the mandatory <DEBTINFO> and <OPTINFO> fields
        - the optional <DEBTINFO> and <OPTINFO> fields
    - added <INVBAL> parsing for cash balances in investment accounts
        - usefulness depends upon how the broker uses these fields
            - Vanguard fund account puts the market value in there instead of the cash balance
            - other tested brokers use it appropriately, though the date of the balance is sometimes inconsistent
              usually due to unsettled trades, i.e. the "as of" date will say "today" but the cash
              balance will actually be from a couple of days ago with the difference being unsettled trades.
    - <STMTTRN> fields under an <INVBANKTRAN> are now parsed into an OfxInvestmentTransactionContainer
        - This changes previous behaviour. LibOFX formerly provided an OfxBankTransactionContainer.
          Now it sets data.invtransactiontype_valid true with data.invtransactiontype = OFX_INVBANKTRAN.
          The end result is that the transaction callback now looks like an investment transaction
          (which it is) rather than a banking transaction (which it is not).
    - added the fields from section 13.9.2.4.2 of OFX spec 2.1.1 to OfxTransactionData
        - provides better support for bonds, options, and 401(k)
    - added <INVPOS> support to provide balances for securities
        - responds to sourceforge feature request #7
        - adds new callback for investment positions
            - adds new OfxPositionData struct
            - adds new ofx_set_position_cb function
    - added <CURRENCY>, <ORIGCURRENCY>, <CURRATE> and <CURSYM> parsing and fields to transactions, securities, and positions
    - added a new account type OfxAccountData::OFX_401K
        - if set, will add <INC401K>Y</INC401K> and <INC401KBAL>Y</INC401KBAL> in the investment statement request
            - this is currently untested
        - added parsing of transactions for 401k in the response (tested only via ofxdump on spec examples)
    - added a fix for sourceforge bug #46 account callback on <TRANSFER>
        - <TRANSFER> no longer results in redundant/irrelevant account and statement callbacks
    - modified ofxdump to support the above changes
    - added investment account examples from OFX 2.1.1 spec to "ofx_sample_files"
        - fixed some time offsets in the OFX spec examples
            - section 13.13: EST is GMT -5
            - section 16.5.3.2: August is not PST or GMT -8. Changed to -7 PDT
            - section 16.5.4.2: August is not PST or GMT -8. Changed to -7 PDT
        - updated existing samples to fix the time formats (added seconds to the time format)
    - could not get openSP to parse ofx201.dtd
        - for elements that actually still provide their data,
          ofxdump generates lots of parse errors on an OFX 2.x file.
          Data handling for these elements in ofx_sgml.cpp is a little unorthodox.

Don't miss a new libofx release

NewReleases is sending notifications on new releases.