This is AqBanking, a modular library for Online Banking and related tasks.
This library was designed by Martin Preuss<martin@aquamaniac.de> to provide a generic way for applications to use Online Banking (e.g. HBCI), and to import/export financial data (such as OFX, SWIFT, DTAUS). It is written in C (see API for Applications).
If you are writing an application and want to use AqBanking's features, there are two possibilities:
A general Note: All strings exchanged from and to AqBanking are expected in UTF-8 encoding unless stated otherwise. Please do not pass Latin-1 strings (i.e. with latin1-Umlauts) into AqBanking or expect the returned strings (which might be translated into German in UTF-8) in that way. For converting UTF-8 into or from other encodings, see the system function iconv(3) in iconv.h.
AqBanking is very modular. It simply provides the means to manage online accounts and to import/export financial data. AqBanking itself does not implement the actual online banking protocols -- this is done in extra plugins which serve as backends/providers. This library is organized in multiple layers:
API for Applications: This contains the complete API to be used by applications (see API for Applications). It is subdivided into several groups and includes (among other things):
Simplified API: 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 AB_JOB objects. This may be useful when adding AqBanking support to applications which have not been designed to work with AqBanking in the first place (see Simplified API)
For the backends/providers, AqBanking provides callbacks for some simple user interaction functions, independently of the actual graphical or text frontend. (see Backend Objects) This has the additional advantage that any new backend/provider will then immediately be supported by all applications.