English Abstract about KONTOPRUEF
Contents of this page:
KONTOPRUEF is a system for verifying German bank account numbers
and German addresses. The benefit of verifying bank account numbers
is to avoid typos and/or real errors when customers enter their
checking account number for example into a web form in order to
let the merchant charge their checking account for some purchase.
Frequent errors include, for example, 7601085 as bank
routing code instead of 76010085, or 731495 instead
of 734195 as account number, or 100003791
instead of 1000003791, and so on. Because the merchant
does not know the correct account data of the customer, he must
believe in the correctness of the data.
Some days after charging the customer's account, the merchant
receives a chargeback from the customer's bank, along with chargeback
fees. If the merchant had verified the account data before
charging the customer's account, the chargeback (and paying the
fees) would have never happened!
Of course, the KONTOPRUEF system does not know all bank account
numbers of all customers. However, this is not necessary.
German bank accounts consist of two parts: the Bankleitzahl
(abbr. Blz, the bank routing code) and the Kontonummer
(abbr. Kto, the account number). With this information,
bank data can be verified as follows:
- First, the existence of the bank routing code can be verified,
just by a lookup in a table (in Germany, there are about 4,000 bank routing
- The records in this table indicate the specific account number
verifying procedure (there are about 120 different procedures).
- Using the appropriate procedure, the check digit in the account
number is calculated. Comparing the calculated check digit with
the data given by the customer, the account number can be classified
as "good" (this means, possible at the given bank) or
"bad" (this means, impossible at the given bank).
As you can see, KONTOPRUEF only verifies that a given bank account
is just possible. But it has turned out that this is
good enough to reduce chargebacks, caused be erroneous customer
inputs, by 90%!
KONTOPRUEF especially helps when used "early" in order processing.
If you have a webshop, don't let your customer click on the
"Submit Order" button as long as his bank data is wrong. Or, if you
have a call center, install KONTOPRUEF directly into the agent's
KONTOPRUEF comes with three different versions:
- KONTOPRUEF-ONLINE, the standard version
of KONTOPRUEF. No software installation is required; bank account
verifying takes place via the Internet. Your computer –
which must have an Internet connection (proxy is ok) – sends
Blz/Kto (or the address) to my server and gets the answer within
Of course, this also works with SSL to avoid sending customers'
bank and/or address data unencrypted through the Internet. Updates are not
necessary because the data on the server is always up-to-date. (Generally,
there's no need to install any software on your side; just a few additional
script lines in your web server scripts will do the job. See the
technical section for further information.)
- KONTOPRUEF-INHOUSE, the version for
installations which don't have access to the Internet, and/or
where the data to be checked is so secret that it must not
leave the customer's servers. You provide a Windows PC
and rent the server software from me. So the software interface
for your client is the same as with KONTOPRUEF-ONLINE;
it's just that you use a server of your own, and the data need
not pass through the Internet. (The server itself should
have Internet access to be able to update itself – else you'll
have to download the updates manually and copy them onto the
server. Outgoing HTTP connection – even by proxy – is sufficient.)
Since the basic rental fees for KONTOPRUEF-INHOUSE are
higher than those for KONTOPRUEF-ONLINE, this version
especially makes sense if you have a large amount of data for testing
for example, starting at tens of thousands of bank accounts per month.
- KONTOPRUEF-OFFLINE consists of
some software libraries which manufacturers of financial software
can merge to their own software which they sell to their customers.
Special agreements have to be made for this version, and royalties
have to be paid for each runtime license.
The capabilities of the different versions are:
||German bank accounts
* Only if you additionally subscribe to quarterly delivery
of the postal data CDROM from the Deutsche Post AG.
In this chapter, you get some information about how to implement
KONTOPRUEF into your own software. Most of the links lead to German
web pages (sorry for that), but since most procedure, variable,
and parameter names in the
software are English anyway, you should not get too much
comprehension problems. If you have any questions, just send an
Please note that the names of the procedures, functions and so
on are KTOPRUEF instead of KONTOPRUEF –
this has historical reasons: The first version of KONTOPRUEF
was developped when MSDOS was the most common operating system,
and the filenames in MSDOS had a maximum length of "8.3" characters;
so, for example, KONTOPRUEF.EXE would have been too long
for a filename...
There are two ways to access the bank account verifying server: by WDDX and as
a WebService. Both ways work with a simple HTTP(S) request – so
you can generally use the KONTOPRUEF online version even behind
a proxy server and/or a firewall.
WDDX ("Web Distributed Data Exchange")
is a mechanism where the request parameters are encoded
directly into the URL, and the result is returned as a (pretty
simple) XML page. To get the result, you can use one of the
commonly available XML parsers, but a WDDX XML page is really
so simple that you can extract the results even with
some normal string operations. See the
for more information about WDDX.
Example: Let's test the (demo) bank routing code 89999999
together with the (demo) account number 1234. You construct
the following URL:
or, using SSL, this one:
and get the following XML page as result from the server:
<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
As you can see, if you do not use an XML parser, you just have to
look for the variable names and extract their content.
The complete list of procedures, functions, parameters and results
can be found in the
documentation for bank account testing and in the
documentation for address testing.
Of course, there are already some "little helpers" for WDDX
so that you do not need to reinvent the wheel:
- If you are using PHP, you can use
these WDDX functions.
- Complete PHP example scripts (with and without CURL) are
- A PERL module for reading and writing WDDX packets can be
- If you are using Windows, you can freely download a little
piece of software called HanftWddx
(a so-called "COM server"). Installation after downloading is pretty simple:
That's it! If you want to remove HanftWddx from your system,
the following two steps are required (of course, you'll need administration
- Make sure that the Windows account you are using has
administration rights. (This is inevitable because registering
a COM server is a system-wide operation and is stored in the
HKEY_CLASSES_ROOT tree of the Windows registry.)
- Start the program HanftWddx.exe, either without any
parameters (then you get some user interface where you can
try out KONTOPRUEF's functions manually), or with the parameter
/regserver – this is a "quiet" registration
without any visual display. Windows7: You
have to right-click on HanftWddx and "Run as
Administrator" (just once for installation!).
For just using KONTOPRUEF's functions via COM, no
administration rights are required, of course. How COM functions
can be used depends on your application development system.
Normally, it looks similarly like this:
- Start the program HanftWddx.exe with the parameter
/unregserver. This removes the COM server registration
from the Windows registry. (Again, Windows7:
Run as Administrator!)
- Delete the file HanftWddx.exe.
You'll find examples for ASP, MS-Office/VBScript, Delphi,
and Java in the category “Software-Integration”
in the table of contents. A complete list of procedures, functions,
parameters, and results is included in the
HanftWddx description page.
Dim KtoPruef As New HanftWddx.KtoPruef
Dim Result as Integer
Result = KtoPruef.TestBlzKto(Username, Password, Blz, Kto, "DE", 0, "")
In addition to the WDDX interface, you can also use KONTOPRUEF's
functions as a WebService. The overview of the functions and the
links to the WSDLs can be found at
(please note: importing the WSDLs with SSL automatically generates
WSDLs with SSL WebService addresses).
WebService access should be implemented in your application
development system; a step-by-step example for VB.NET can be
found here. If you want to do it manually
"from the command line" without Visual Studio, you can follow
Import the KONTOPRUEF WSDL with the following .NET command:
wsdl /language:vb http://webservices.hanft.de/wsdl/IKtoPruef
or, if the WebService should be accessed using SSL, this one:
wsdl /language:vb https://webservices.hanft.de/wsdl/IKtoPruef
You then have a file called IKtoPruefService.vb on disk. Don't
edit this file manually!
Write a VB.NET program TestBlzKto.vb similarly as follows:
Public Shared Sub Main()
Dim Result as Integer
Dim ResultText as String
Dim BankName as String
Dim NewBlz as String
Dim myKtoPruef as New IKtoPruefService()
Result = myKtoPruef.TestBlzKto("demo", "demo", "89999999", "1234", _
"DE", 0, "", _
ResultText, BankName, NewBlz)
Console.WriteLine("Result: " & Result.ToString())
Console.WriteLine("ResultText: " & ResultText)
Console.WriteLine("BankName: " & BankName)
Console.WriteLine("NewBlz: " & NewBlz)
Compile this program with (write this in a single command line!)
(or how ever you compile a VB.NET program in your application development system).
Start the program TestBlzKto.exe. You should get the
To check if KONTOPRUEF-ONLINE works with your application software,
there are many testing possibilities without any purchase or
In demo mode (username and password are demo),
the online server does not operate on real
data. Instead, you can do some experiments with the bank
routing code 89999999 (which does not exist in
real life). An even account number (for example, 1234)
generates the result 0/Ok; whereas an odd account
number (for example, 1235) generates the result
13/Check digit wrong.
You can try this by the following WDDX URLs (the first
comes with an even account number, the second with an odd
(You should get the same results when using WebService instead
To get access to the KONTOPRUEF-ONLINE server, you can fill
out the registration form directly
on the screen and send it to me by mail or fax. As soon as
I have received the form, you will get username and password
for the server by e-mail.
Response to your registration is guaranteed within 24
hours; however, in reality, this goes much faster. If you
send the registration form by fax, it will generally take
just 10 minutes to process your order and to supply your
username and password!
|Download the registration form:||Download Adobe Reader:|