Projekt

Allgemein

Profil

Herunterladen (14,9 KB) Statistiken
| Zweig: | Markierung: | Revision:
0b9b90c4 martin
2008/11/25
a397d773 aquamaniac
Content
=======

6fbe9550 aquamaniac
1. What Is AqBanking ?
1.1. Generic Online Banking Interface
1.2. Generic Financial Data Importer/Exporter Framework
1.3. Bank/Account Information
2. Supported Platforms
3. Supported Frontends
16122da5 aquamaniac
4. Supported Backends
4.1. HBCI
4.2. OFX Direct Connect
0b9b90c4 martin
4.3. EBICS
4.4. None
16122da5 aquamaniac
5. What Do I Need ?
5.1. Required Packages
5.2. Applications
6. Building AqBanking
6.1. Building from the Tar File
0b9b90c4 martin
6.2. Building from CVS/SVN
16122da5 aquamaniac
6.3. Building the API Documentation
6.4. Notes on porting the qt parts to Qt-4:
7. Windows Registry Keys Used
7.1. Software\\AqBanking\\Paths\\pkgdatadir
7.2. Software\\AqBanking\\Paths\\sysconfdir
7.3. Software\\AqBanking\\Paths\\bankinfodir
7.4. Software\\AqBanking\\Paths\\providerdir
7.5. Software\\AqBanking\\Paths\\importerdir
8. Environment Variables Used
8.1. AQBANKING_LOGLEVEL
8.2. AQBANKING_STORE_JOBLOGS
8.3. AQHBCI_LOGBOOKED
2e39df9c martin
8.4. AQHBCI_LOGNOTED
8.5. AQHBCI_DEBUG_JOBS
8.6. AQOFX_LOG_COMM
16122da5 aquamaniac
9. Security in PIN/TAN Mode
2e39df9c martin
10. Using Your Own Profiles for Im-/Exporters
11. Thanks
a397d773 aquamaniac
92df361c aquamaniac

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

cba0a835 cstim
AqBanking is a library for online banking and financial
applications. It has three major goals which are described in the
following paragraphs.
92df361c aquamaniac
9748542e cstim
(Note: Information in German can be found on
http://linuxwiki.de/AqBanking )

a5a414f7 aquamaniac
The homepage of AqBanking is http://www.aqbanking.de/

92df361c aquamaniac
1.1. Generic Online Banking Interface
a397d773 aquamaniac
-------------------------------------
92df361c aquamaniac
The intention of AqBanking is to provide a middle layer between the program
and the various Online Banking libraries (e.g. AqHBCI, OpenHBCI etc).

16122da5 aquamaniac
The real work is done in so-called banking backends. See chapter 4 for a
list of supported backends.
92df361c aquamaniac
619f44ca aquamaniac
92df361c aquamaniac
1.2. Generic Financial Data Importer/Exporter Framework
b6950e16 aquamaniac
-------------------------------------------------------
92df361c aquamaniac
b6950e16 aquamaniac
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.
92df361c aquamaniac
37827794 aquamaniac
Currently there are plugins for the following formats:

- Importers:
- DTAUS (German financial format)
- SWIFT (MT940 and MT942)
- OFX
- CSV
- OpenHBCI1 transactions
619f44ca aquamaniac
- ERI
37827794 aquamaniac
- Exporters
- DTAUS (German financial format)
- CSV
92df361c aquamaniac

948175ea aquamaniac
1.3. Bank/Account Information
-----------------------------

cba0a835 cstim
AqBanking supports plugins which allow lookup and verification of
bank code/ account id pair validity. For Germany the library
KtoBlzCheck is used for validation, but the bank information is
shipped with aqbanking.
948175ea aquamaniac
fff51b99 aquamaniac
Currently AqBanking provides informations about:
- ca 25,000 US banks
- ca 20,000 German banks
8392c3eb aquamaniac
- ca 3,600 Swiss banks
- ca 2,300 Austrian banks
fff51b99 aquamaniac
948175ea aquamaniac
AqBanking also provides information about countries: Country name, ISO-3166
country code (both numeric and alpha) and currency information (ISO 4217
currency codes).


92df361c aquamaniac
2. Supported Platforms
======================

948175ea aquamaniac
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.
92df361c aquamaniac
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,
cba0a835 cstim
however, this is untested
92df361c aquamaniac


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

cba0a835 cstim
The aqbanking package includes several so-called frontends which
offer a simplified interface between aqbanking and GUI
applications. The aqbanking library itself requires the
implementation of various user interaction functions (e.g. opening
a message box), and for particular GUI libraries these are already
available in the respective frontends.

Basically all common GUI libraries (KDE, GNOME, Qt, console) are
21d71d9d aquamaniac
supported, and there exist frontend libraries for each of them. This
cba0a835 cstim
is accomplished by only a few callback functions for user
interaction which can be overloaded by applications.
92df361c aquamaniac
b6a2698a aquamaniac
This package contains the following frontends:
cba0a835 cstim
- GTK 2 ("g2banking")
- Qt 3 ("qbanking"), can also be converted to Qt4 as described below
- KDE 3 ("kbanking")
- Console ("cbanking")
619f44ca aquamaniac
92df361c aquamaniac

16122da5 aquamaniac
4. Supported Backends
=====================

AqBanking includes all its currently known banking backends.


4.1. HBCI
---------

The backend AqHBCI provides support for the German online banking protocol
called "Homebanking Computer Interface". It is a national standard provided
by most German credit institutes.

The following security media are supported:
- DDV chipcard (DES-DES-Verfahren)
- RSA chipcard (RSA-DES-Hybrid mode)
- 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)

This backend supports the HBCI versions 2.01, 2.10 and 2.20.


4.2. OFX Direct Connect
-----------------------

This backend provides support for an online banking protocol used in the
United States, Canada and maybe in the United Kingdom.


0b9b90c4 martin
4.3. EBICS
16122da5 aquamaniac
--------------

0b9b90c4 martin
EBICS is the successor of the German banking protocol FTAM. It is used in commercial
environments. The tool AqBanking-CLI comes with optional support for this protocol.
16122da5 aquamaniac
dccbea34 aquamaniac
0b9b90c4 martin
4.4. None
16122da5 aquamaniac
---------

2e39df9c martin
This is a fallback module which can be used by applications for accounts which
are not managed by any online banking backend.
16122da5 aquamaniac


5. What Do I Need ?
92df361c aquamaniac
===================


16122da5 aquamaniac
5.1. Required Packages
92df361c aquamaniac
----------------------

3fb59f3e cstim
AqBanking has several direct dependencies:

0b9b90c4 martin
- "Gwenhywfar" >= 3.5.2, available from
cba0a835 cstim
http://gwenhywfar.sf.net/, is absolutely required

2e39df9c martin
- "GMP", the GNU MP Bignum Library available from
http://gmplib.org/index.html is required for calculations

cba0a835 cstim
- "KtoBlzCheck" >= 1.0 from http://sf.net/projects/ktoblzcheck is
required for the German bank account number checking, otherwise
the account number checking will not be compiled.
3fb59f3e cstim
0b9b90c4 martin
- "libchipcard" >= 4.0.0 from http://www.libchipcard.de is
cba0a835 cstim
required for the aqgeldkarte backend, otherwise the geldkarte
parts cannot be compiled
3fb59f3e cstim
39f82261 cstim
- The python module "ctypes" http://sf.net/projects/ctypes is
required for the python wrappers of aqbanking. The python wrappers
are installed by default (to disable it, use --disable-python),
but they cannot be used unless "ctypes" is installed.
cba0a835 cstim
9748542e cstim
(Note: Further information in German can be found on
http://linuxwiki.de/AqBanking )

92df361c aquamaniac
16122da5 aquamaniac
5.2. Applications
92df361c aquamaniac
-----------------

41f20979 martin
These applications fully or partially support AqBanking:
37827794 aquamaniac
- QBankManager (http://www.aquamaniac.de/qbanking/)
- Gnucash (http://www.gnucash.org/)
92df361c aquamaniac
- KMyMoney (http://kmymoney2.sf.net/)
cba0a835 cstim
- (partially) Grisbi (http://sourceforge.net/projects/grisbi)
af7d0aa9 martin
- OrgaMon (http://orgamon.org/)
cba0a835 cstim
The aqbanking package also includes several command-line tools
41f20979 martin
(aqbanking-tool, aqhbci-tool) and GUI tools (qt3-wizard etc)
cba0a835 cstim
used by Gnucash, KMyMoney and QBanking to let the user setup,
modify and debug HBCI settings.
42f5298d aquamaniac
9748542e cstim
(Note: Further information in German can be found on
http://linuxwiki.de/AqBanking )

42f5298d aquamaniac

16122da5 aquamaniac
6. Building AqBanking
42f5298d aquamaniac
=====================


16122da5 aquamaniac
6.1. Building from the Tar File
42f5298d aquamaniac
-------------------------------

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

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

beddbe4f cstim
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.

0ee27137 cstim
- (especially on Mac/Darwin): If your configure run does not
detect the QT libraries and it says "checking for qt3
libraries... not found", then you need to specify the linker
flags for qt3 manually in the env variable qt3_libs. I.e. if
your qt3 library files are in /opt/qt/lib and is called
libqt-mt, then you need to specify
./configure qt3_libs="-L/opt/qt/lib -lqt-mt"

beddbe4f cstim
0b9b90c4 martin
6.2. Building from CVS/SVN
--------------------------
42f5298d aquamaniac
#>make -fMakefile.cvs
cba0a835 cstim
and continue as described in "5.1. Building from the Tar File".
42f5298d aquamaniac

16122da5 aquamaniac
6.3. Building the API Documentation
42f5298d aquamaniac
-----------------------------------

#>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

cba0a835 cstim
This installs the linked doc to the path you gave to ./configure
by "--with-docpath=PATH". It defaults to "$HOME/apidoc", which
means it does *not* obey the --prefix argument.
92df361c aquamaniac

16122da5 aquamaniac
6.4. Notes on porting the qt parts to Qt-4:
5d16bc4a cstim
------------------------------------------
92df361c aquamaniac
be4ecee9 christian
The Qt4 library is available as GPL on Linux *and* Windows, which
means this online banking programm is available on windows as well,
which is a GOOD THING!
92df361c aquamaniac
5d16bc4a cstim
But qt4 is not at all source compatible to qt3, see
cba0a835 cstim
http://doc.trolltech.com/4.0/porting4.html. Trolltech provides a
tool for the necessary class renaming, called "qt3to4". This
aqbanking package already has the necessary make rules ("make
qt4-port") for calling that tool on all source files for the
"qbanking" frontend and the ui-tools of the "aqhbci" backend, if
the qt4 library has been detected at configure time. I.e. if you
want to use this package in qt4, do the following two steps:

1. Call ./configure with qt3_libs and qt3_includes set so that the
Qt4 libraries are found
fc414b86 christian
2. Call "make qt4-all"
cba0a835 cstim
3. As usual call "make"
5d16bc4a cstim
d9420a78 martin
An example for 1. is this for Linux/g++:

DIR4=/usr/local/qt4
LIBS4=-L$(DIR4)/lib -lQtCore -lQtGui -lQt3Support
INCS4=-I$(DIR4)/include -I$(DIR4)/include/Qt -I$(DIR4)/include/QtCore
INCS4+=-I$(DIR4)/include/QtGui -I$(DIR4)/include/Qt3Support
TO4=$(DIR4)/bin/qt3to4

./configure --prefix=/my/prefix \
--enable-debug=yes --enable-qt3=yes \
QTDIR=$(DIR4) QT3TO4=$(TO4) \
qt3_libs="$(LIBS4)" \
qt3_includes="$(INCS4)"
5d16bc4a cstim
or on Windows/mingw32

619f44ca aquamaniac
./configure -C
--enable-debug QTDIR=$QTDIR
qt3_libs="-L$QTDIR/bin -lQtCore4 -lQtGui4 -lQt3Support4"
qt3_includes="-I$QTDIR/include -I$QTDIR/include/Qt -I$QTDIR/include/QtCore -I$QTDIR/include/QtGui -I$QTDIR/include/Qt3Support"
--with-gwen-dir=/c/Programme/gwenhywfar
--with-aqbanking-dir=/c/Programme/aqbanking
5d16bc4a cstim
-- 2005-08-10, cstim
92df361c aquamaniac


16122da5 aquamaniac
7. Windows Registry Keys Used
9bfaf959 aquamaniac
=============================

be4ecee9 christian
AqBanking uses registry keys below HKEY_CURRENT_USER. Currently the
following keys are used. These keys are created by the setup.exe which
21d71d9d aquamaniac
contains the binary package for WIN32 platforms.
9bfaf959 aquamaniac
be4ecee9 christian
Note: Additionally in Sept/Oct 2007 a relocatable mode of aqbanking
has been introduced. This might mean that those registry keys are not
needed anymore. (FIXME: Need to clarify this.)

9bfaf959 aquamaniac
16122da5 aquamaniac
7.1. Software\\AqBanking\\Paths\\pkgdatadir
9bfaf959 aquamaniac
-------------------------------------------
e1fd7cb8 martin
This is the data folder (i.e. $PREFIX/share/aqbanking on POSIX systems).
9bfaf959 aquamaniac

16122da5 aquamaniac
7.2. Software\\AqBanking\\Paths\\sysconfdir
9bfaf959 aquamaniac
-------------------------------------------
This is the folder containing system configuration files.
(i.e. $PREFIX/etc on POSIX systems).


16122da5 aquamaniac
7.3. Software\\AqBanking\\Paths\\bankinfodir
9bfaf959 aquamaniac
-------------------------------------------
This folder is used to store bankinfo plugins.


16122da5 aquamaniac
7.4. Software\\AqBanking\\Paths\\providerdir
9bfaf959 aquamaniac
-------------------------------------------
This folder is used to store provider (backend) plugins.


16122da5 aquamaniac
7.5. Software\\AqBanking\\Paths\\importerdir
9bfaf959 aquamaniac
-------------------------------------------
This folder is used to store importer/exporter plugins.



16122da5 aquamaniac
8. Environment Variables Used
6fbe9550 aquamaniac
=============================


16122da5 aquamaniac
8.1. AQBANKING_LOGLEVEL
6fbe9550 aquamaniac
-----------------------

This variable stores the loglevel to be used for AqBanking.
Possible values are: emergency, alert, critical, error, warning, notice,
info, debug and verbous.


16122da5 aquamaniac
8.2. AQBANKING_STORE_JOBLOGS
6fbe9550 aquamaniac
----------------------------
If this variable is defined then AqBanking will always store job logs with
e1fd7cb8 martin
jobs. Otherwise job logs are only stored for jobs with a status other than
6fbe9550 aquamaniac
"finished". Job logs can become quite big.

9bfaf959 aquamaniac
16122da5 aquamaniac
8.3. AQHBCI_LOGBOOKED
d9cd71b9 aquamaniac
---------------------
If this environment variable exists then the file "/tmp/booked.mt" is created
upon reception of transactions via the job GetTransactions. This file then
contains a SWIFT MT940 document which can be very helpfull in case there is
a problem in the SWIFT parser.


2e39df9c martin
8.4. AQHBCI_LOGNOTED
--------------------
Same as AQHBCI_LOGBOOKED but for noted transactions (which are transactions
which are noted but ot yet booked)


8.5. AQHBCI_DEBUG_JOBS
d9cd71b9 aquamaniac
----------------------
If this variable exists then additional debugging data is stored with each
job.


2e39df9c martin
8.6. AQOFX_LOG_COMM
466a32c6 martin
-------------------
If this variable exists then all OFX communication is logged to /tmp/ofx.log.
This is only needed when debugging AqOfxConnect.
WARNING: This might expose your user id and password to everyone who can read
that file!


d9cd71b9 aquamaniac
16122da5 aquamaniac
9. Security in PIN/TAN Mode
d9cd71b9 aquamaniac
===========================

In PIN/TAN mode AqHBCI stores certificates of the bank in a special folder:
$HOME/.banking/backends/aqhbci/data/banks/280/<BLZ>/certs/.
(<BLZ> is the routing number of your bank, German "Bankleitzahl")

Authentification of the bank is only possible by checking against the known
certificates stored in this folder.

For maximum security you could chown this folder to another user and make it
readable and accessible by the running user after having received and
acknowledged the bank's certificate.

This way the running application is able to read and verify the certificates
but unable to modify it or to add new ones.

92df361c aquamaniac
2e39df9c martin
10. Using Your Own Profiles for Im-/Exporters
=============================================

You can create your own profiles to be used with the various importers.
For AqBanking to recognize your private profiles they must be stored in
the user local folder.
E.g. CSV profiles on Linux must be stored in
"$HOME/.aqbanking/imexporters/csv/profiles/".



11. Thanks
f61a7b43 aquamaniac
==========

74b1a700 aquamaniac
I wish to thank the following (among others) people for their support in
f61a7b43 aquamaniac
making AqBanking work:
- Christian Stimming (build-system and tarball cleanup, translations, inputs)
- Jens Koerner (did some huge jobs to provide German translation)
- David Reiser (for helping in debugging the OFX DirectConnect code)
- Christoph Bohl (for helping with the YellowNet backend)

- and of course the many people who submitted bug reports !!


0b9b90c4 martin
Martin Preuss, Hamburg/Germany, 2008/11/25