aqbanking/README @ fc414b86
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
|