The OFX importer was one of the first components of KMyMoney to be written as a Plugin. At that time, there were only a few plugins included in the source code, and they were not always included in versions built for Linux® distributions, so it was sometimes necessary for users to be able to compile the plugins themselves. This is rarely the case any more, but see the section on Plugins for more information. Currently, many of the features considered core parts of KMyMoney are implemented as plugins, so that fact is not always mentioned in this handbook where those features are discussed. See also the Plugins section in the Settings Chapter.
OFX stands for “Open Financial Exchange”. According to the OFX Work Group web site “Open Financial Exchange is an open standard for client-server systems and cloud based APIs for exchanging financial data, and performing financial transactions between financial institutions, and financial applications.” The specification defines formats for transfer of financial data both by file and by direct interchange. Additional historic information may be found on the Wikipedia page
Although the OFX standard is much more complete and robust than QIF, there are still variations, depending on the specific implementation used by any institution. OFX files may have an extension of “OFX” or “QFX” (upper or lower case); this does not imply any particular difference in the content. The specification was originally based on SGML, and more recent versions are based on XML, so the files can be read in any text editor, but as whitespace is not relevant to the content itself, some implementations do not use any, making it very hard for a human to read.
In addition, even though the standard includes provisions for additional types of data, KMyMoney is only able to import transaction data, with some additional data such as the current balance of accounts.
Although it appears to have disappeared, there used to be another site with good information at OFX Home, which maintained a directory of financial institutions that support OFX. This was often useful if you had problems setting up OFX direct connect. They also had a forum for discussions about OFX issues. As the domain is still registered, we will leave this reference just in case the site reappears in the future.
The OFX standard defines the organization and formatting of financial data, but that data can exist either as a regular file or as a stream of data between two computers. The most straightforward way of getting OFX data is to download it from your bank or other financial institution as an OFX file. In most cases, when you are logged into the bank's web site, on the page which displays your transactions, there is a button or link for downloading that data. It may say OFX or QFX, or you may request the data for Quicken or Web Connect (see below for more on this term.) You also have the option of specifying the date range of transactions to download (although that is sometimes restricted to periods matching the available statements,) as well as filtering by type of transaction.
If you have downloaded an OFX file, the most basic way to import it is to choose the importer from the menu bar, selecting the → → menu item. If OFX does not show up under Import, you do not have the OFX Importer Plugin installed correctly, or it is not enabled. Please see the previous section.
The first thing the importer will do is ask you into which account to import the transactions. If the file includes transactions from multiple accounts, you will be asked this question multiple times.
After importing, some of your transactions may be shown with an exclamation mark on a yellow triangle in the ledger. This is because they need to be assigned a category. The importer was not able to automatically assign a category based on your past transaction history. You can edit each transaction in the ledger to assign a category, and the mark will be removed.
This section describes the “native” OFX importer. OFX files may also be imported using the AqBanking Importer Plugin. The two importers do behave slightly differently, and they are written and supported by two different developers.
Please note that if you are importing a file with investment transactions, those investments must first exist in your KMyMoney file. The trading symbol is used to match, so please ensure that the symbol in KMyMoney is exactly the same as the one in the file you're importing.
Rather than explicitly downloading an OFX file, as described above, an easier way to import an OFX file is to set up Web Connect. Visit your bank's web site, and click the button or link to download your data as an OFX file. (Some institutions will only list QFX, which is equivalent.) Your browser should ask whether you want to save the file, or else what program you would like to use to open the file. Point your browser to KMyMoney. It will then import the downloaded OFX file directly into the KMyMoney file you currently have open, or the file you most recently had open. You can also change the file associations of your desktop environment, and have the system automatically open KMyMoney if you click an OFX file in your file browser.
If you need to import the OFX file into some other KMyMoney data file, open that file in KMyMoney first, and then visit your bank's web site.
KMyMoney also supports OFX Direct Connect. This gives KMyMoney the ability to contact your bank directly to download transactions, assuming the bank supports it.
Please be warned: not all banks support OFX Direct Connect, and those that do often use software provided and supported by third parties, and those third parties often provide customer support only to users of specific, commercial financial management software. No bank directly supports KMyMoney, so you may have to tell them you want to bank directly from MS Money or Quicken. In addition, the OFX Work Group web site mentioned above also says “Further, the API allows the exchange to be facilitated either directly or via an intermediary such as data aggregation service providers.” Users have reported that banks which have migrated to using such aggregation service providers are even less likely to provide any support unless you are using one of the commercial applications.
In addition, your bank may require a separate signup than for the regular web site, it may give you a separate password or PIN, and it may even charge you a separate fee for this service.
If Direct Connect works for you, it allows you to update your records by downloading recent transactions with a single button push. If it does not work on your first attempt, you may find an easy solution to your issue, or it may take a lot of research, and there is no guarantee that it will work in any particular situation. However, please do not take any of this as a reason to not try it.
The first step is to configure each account for which you wish to download transactions. Go to the Accounts view, right-click the account you wish to configure, and choose . This is also available from the menu if the account is open in the Ledgers View. In case more than one online banking plugin is installed on your system you will be asked which one to use. For the internal OFX method select . A list of banks will be downloaded from the Internet and a wizard will guide you through choosing a bank, entering your username and password, and selecting an account. Should you find that your bank is not listed, then it may still be possible to use the manual option. Your bank may be able to provide the required parameters, or you may have to do some research to find them.
Note
As implied above, setting up OFX Direct Connect can sometimes be a challenge,
especially as the implementations at most institutions do not provide sufficient
details in error messages. One particular issue to note is that many
institutions require you to change your password the first time you access it
online using this method. Unfortunately, at this time, the library that
KMyMoney uses (libofx) does not have a way to interactively change a password.
In some cases, it is possible to get a technical support person at the
institution to change the password for you. Until we are able to expand this
section with more detailed troubleshooting information, if you have trouble
getting this to work for you, you can ask for help on the developers' mailing
list (kmymoney-devel kde.org) or one of the other support
channels.
Once you have an account set up with online banking, go to the ledger for that account, and choose → . This will connect to your bank, and download your recent transactions. See the next section on how you can configure the actual date range of transactions to fetch.
Note
In older versions of KMyMoney, the Payee name was always taken from the
PAYEEID field in the OFX data. As of version 4.6, the payee
name can be based on either the PAYEEID,
NAME, or MEMO field in the OFX transaction.
The next section shows how you can configure this feature and some other OFX
direct connect settings.
This was described previously, in the section on editing account details.