

1. What Is AqBanking ?
======================

AqBanking has three major goals which are described in the following
paragraphs. 


1.1. Generic Online Banking Interface
-----------------------------------

The intention of AqBanking is to provide a middle layer between the program
and the various Online Banking libraries (e.g. AqHBCI, OpenHBCI etc). 

The real work is done in banking backends. 
The first backend which is already supported is AqHBCI, a library which 
implements a client for the German HBCI (Home Banking Computer Interface) 
protocol. 

The backend AqHBCI currently supports these security media: 
 - RDH keyfile (RSA-DES-Hybrid mode)
 - DDV chipcard (DES-DES-Verfahren)
 - OpenHBCI keyfile (either OpenHBCI 1 or 2, this medium allows continued use 
                     with OpenHBCI in parallel) 
 - PIN/TAN (PIN/TAN mode using HTTP over SSL)


1.2. Generic Financial Data Importer/Exporter Framework
-------------------------------------------------------

AqBanking uses various plugins to simplify import and export of financial
data. It also provides the administration of profiles on a per import/export
plugin basis.

Currently there are plugins for the following formats:

- Importers:
  - DTAUS (German financial format)
  - SWIFT (MT940 and MT942)
  - OFX
  - CSV
  - OpenHBCI1 transactions
  
- Exporters
  - DTAUS (German financial format)
  - CSV


1.3. Bank/Account Information
-----------------------------

AqBanking supports plugins which allow lookup and verification of bank code/
account id pair validity. For Germany the library KtoBlzCheck is used.

Currently AqBanking provides informations about:
- ca 25,000 US banks
- ca 20,000 German banks
- ca  3,600 Swiss banks
- ca  2,300 Austrian banks

AqBanking also provides information about countries: Country name, ISO-3166
country code (both numeric and alpha) and currency information (ISO 4217
currency codes).



2. Supported Platforms
======================

AqBanking uses the library Gwenhywfar (http://gwenhywfar.sf.net/) for 
abstraction of the underlying system. So it should work on any system for 
which Gwenhywfar is available. 

This includes (but is not limited to): 
 - Linux (of course ;-)
 - Windows (WIN32 platforms, such as Windows95 up to Windows XP)
 - most POSIX systems (such as the BSDs) should also be supported, 
   however, this is untested)



3. Supported Frontends
======================

Basically all possible frontends (such as KDE, GNOME, console etc) are 
supported. This is accomplished by only a few callback functions for user 
interaction which can be overloaded by applications. 



4. What Do I Need ?
===================


4.1. Required Packages
----------------------

AqBanking has several direct dependencies:

- "Gwenhywfar", available from http://gwenhywfar.sf.net/, is
absolutely required

- "LibOFX" from http://sf.net/projects/libofx is required for the ofx
parts, otherwise the ofx parts will not be compiled.

- "KtoBlzCheck" from http://sf.net/projects/ktoblzcheck is required
for the German bank account number checking, otherwise the account
number checking will not be compiled.

- The python module "ctypes" http://sf.net/projects/ctypes is required
for the python wrappers of aqbanking. Otherwise you cannot enable
python support (--enable-python).


4.2. Strongly Recommended Packages
----------------------------------

To use AqBanking you need backends.
The first backend (which also provides some important importers) is
AqHBCI (http://aqhbci.sf.net/).

There is also a setup wizard for AqHBCI available (a QT application), you
can download it from the project page of AqHBCI.


4.3. Bindings
-------------------------

AqBanking also has KDE bindings which allow you to add support for AqBanking
in very short time (kbanking, see home page of AqBanking)


4.4. Applications
-----------------

These application fully or partially support AqBanking:
 - QBankManager (http://www.aquamaniac.de/qbanking/)
 - Gnucash (http://www.gnucash.org/)
 - KMyMoney (http://kmymoney2.sf.net/)
 - AqHBCI QT Tools (http:/aqhbci.sf.net/)
     This includes standalone tools used by Gnucash, KMyMoney and QBanking to 
     let the user setup, modify and debug HBCI settings.



5. Building AqBanking
=====================


5.1. Building from the Tar File
-------------------------------

#>./configure
#>make
#>make install

(the last step most probably requires you to be root)

Compilation hints for specific platforms:

- For FreeBSD and potentially other non-Linux platform, it might be
  necessary to use "gmake" instead of the "make" program.

- Also, if your "make" program happens to complain about the variable
  definition "I18NFILES = $(shell cat ..." (in Makefile.in around line
  230) and related definitions, then you need to look for comments in
  the Makefile about "old make programs". Follow the instructions in
  these comments, i.e. set some variable definitions to an empty
  variable manually. This should remove all potentially incompatible
  directives from the Makefile.



5.2. Building from CVS
----------------------

#>make -fMakefile.cvs
#>./configure
#>make
#>make install


5.3. Building the API Documentation
-----------------------------------

#>make srcdoc

If you want to install a linked API documentation (which links against the
API documentations of the projects AqBanking depends on) use this:

#>make install-srcdoc

This installs the linked doc to the path you gave to ./configure in 
 "--with-docpath=PATH". It defaults to "$HOME/apidoc".








