AqBanking

AqBanking is a modular and generic interface to online banking tasks, financial file formats (import/export) and bank/country/currency information. It provides frontends for Qt, KDE, GTK, and console. AqBanking uses backend plugins to actually perform the online tasks. HBCI, OFX Direct Connect, and DTAUS discs are currently supported by AqBanking. This open source software is used by GnuCash, KMyMoney, and QBankManager.

AqBanking itself does not implement the actual online banking protocols but this is done by extra plugins, which serve as backends/providers. This library is organized in multiple layers:

Lowlevel - the function group AB_PROVIDER represents this level. These functions should not be accessed by an application; instead, they are accessed by plugins. The plugins (e.g. AqHBCI) implement the Provider functions, which actually implement the online banking functionality.

Midlevel - This is the midlevel between low level and high level. This is the layer, which holds the list of manageable accounts and distributes jobs across the providers. This is also not used by the application.

HighLevel(or "Main Interface") - These are the functions used by the application. This Layer Offers:
· Managing Backends/Providers
· Managing Accounts
· Acceping AB_JOB (online banking tasks) objects for online banking jobs from the application and sending it to the corresponding provider.

ImExporter Layer - Previously this was occasionally called "Application Layer". This layer offers an even simpler API to applications, where the calls to all lower layers are combined, and the application will not deal with objects. This may be useful when adding AqBanking support to applications, which have not been designed to work with AqBanking in the first place.