NetSlave cKonto Anleitung
[Shareware]



Index
- Über cKonto
- Dateien
- Lizenzbedingungen
- Allgemeines
- Installation
- Aufruf von cKonto - Datenübergabe
- Ausgabe von cKonto
- Beispiel-Integration in Perl
- *** Neu in cKonto 1.5.3: Bankensuche
- *** Neu in cKonto 1.7.1: IBAN-Pruefung fuer deutsche IBANs
- *** Neu in cKonto 2.9.1: cKonto SEPA - Internationales IBAN-Modul
- Lizensierung, Updates und Support




Über cKonto
cKonto validiert IBANs sowie Kontonummern deutscher Banken und Sparkassen in Verbindung mit der Bankleitzahl durch die Berechnung einer Prüfziffer nach den Berechnungsmethoden der Deutschen Bundesbank. cKonto kann somit eine Aussage treffen, ob die Bankverbindung theoretisch existieren kann.

cKonto wurde insbesondere für den Einsatz in eCommerce- und Onlineshopsystemen entwickelt. Durch ein Interface im CGI-Standard (Format der GET-Datenübergabe) kann cKonto schnell in jede Applikation integriert werden.

cKonto ist Shareware. Ohne Eingabe eines gültigen Lizenzschlüssels ist die Funktion auf die ersten 10 der zur Zeit 134 Prüfalgorithmen beschränkt. Die Nutzung von cKonto als Shareware ist durch Eingabe des Lizenzschlüssels "demo" möglich und nicht weiter beschränkt.




Dateien
  • "cKonto" - Linux Executable
  • "cKonto.exe" - Windows Executable
  • "cKonto Windows Anwendung.exe" - Windows Client

  • Ordner "Dev CGI+PHP" - Entwicklungsbeispiele für CGI-Umgebungen
  • Ordner "Dev DLL" - DLL und Windows Entwicklungshilfen
  • Ordner "Anleitung" - cKonto Manual




Lizenzbedingungen
Benutzen Sie die Scrollbalken um den gesamten Vertrag einzusehen



Allgemeines
In cKonto wurden alle aktuellen Prüfalgorithmen für deutsche Banken und Sparkassen umgesetzt. Es wurde erfolgreich mit allen Referenzkontonummern der Deutschen Bundesbank und ca. 20'000 realen Kontonummern getestet. Die teilweise in verbaler Form vorliegenden Algorithmen wurden nach bestem Wissen und Gewissen umgesetzt, dennoch kann keine Garantie für eine 100%-ige Übereinstimmung gegeben werden.

Auf unserem Testsystem (Athlon, 2.6Ghz, 1Gb RAM, WinXP Prof.) erreichte die cKonto Version 1.6.2 vom Juni 2006 eine Geschwindigkeit von ca. 163 Prüfungen je Sekunde - ca. 6,1 ms je Prüfung. cKonto ist somit sehr gut für die Integration in Realtime-Applikationen geeignet.

Die Kontonummern der Banken zu denen ein Prüfverfahren vorliegt werden mit diesem auf Gültigkeit geprüft. Die Gültigkeit der Kontonummer für eine Bank gibt an, ob diese vergeben werden kann - nicht jedoch, ob sie auch existiert. cKonto ersetzt keine Bonitäts- und Onlineprüfung der Bankverbindung! Die Prüfung der Kontonummer kann neben "Gültig" oder "Ungültig" auch "Nicht prüfbar" ergeben, da einige Banken kein Prüfverfahren oder aber Prüfverfahren nur für bestimmte Bereiche von Kontonummern verwenden. So sind beispielsweise Sonderkontonummern in vielen Fällen nicht prüfbar.



Installation
Die Installation von cKonto ist denkbar einfach:

Unter Windows ( 95 / 98 / ME / NT / 2000 / XP ) kopieren Sie die ausführbare Datei "cKonto.exe" in ein beliebiges Verzeichnis - Fertig!

Unter Unix/Linux kopieren Sie die ausführbare Datei "cKonto" in ein Verzeichnis Ihrer Wahl oder laden sie per FTP auf Ihren Server. Anschliessend geben Sie cKonto Ihrem Einsatzzweck entsprechend Ausführungsrechte - soll jeder Nutzer des Systems cKonto ausführen können, setzen Sie die Rechte per FTP oder mit dem Kommando chmod auf "755" bzw. "rwxr-xr-x".



Aufruf von cKonto - Datenübergabe
cKonto wird über die Kommandozeile aufgerufen. Die Kontonummer, Bankleitzahl und der Lizenzschlüssel werden dabei im Format der GET-Datenübergabe (CGI) als Parameter übergeben:

cKonto "knr=11111111&blz=12345678&key=demo"

Beachten Sie, dass der Parameter durch Anführungszeichen begonnen und beendet wird.
Der Eingabestring darf keine Leer- oder Anführungszeichen enthalten!

In diesem Eingabestring kennzeichnet 11111111 die Kontonummer (1-10 stellig), 12345678 die Bankleitzahl (immer 8-stellig) und demo den Lizenzschlüssel. Wird "demo" oder ein ungültiger Lizenzschlüssel als key verwendet, werden nur die Methoden 0-9 zur Prüfung herangezogen. Es wird dementsprechend ein Hinweis auf den Demonstrationsmodus ausgegeben.


Die NAME/WERT-Paare können natürlich auch in anderer Reihenfolge übergeben werden, z.B.:

cKonto "blz=12345678&key=demo&knr=55555"


Achten Sie darauf, dass Benutzereingaben niemals ungefiltert an Shell-Anwendungen übergeben werden sollten. Filtern Sie insbesondere bei der Bankleitzahl und Kontonummer alle nicht-numerischen Zeichen wie z.b. Leerzeichen, Pipes, das Semikolon und das Zeichen "&".




Ausgabe von cKonto
cKonto prüft nach dem Aufruf die Plausibilität der eingegebenen Daten, sucht die Bank und die von ihr verwendete Prüfmethode, führt die Prüfzifferberechnung durch und schreibt seine Ausgabe im Format der GET-Datenübergabe (CGI) an STDOUT:

code=X&name=BEZEICHNUNG+DER+BANK&zip=12345&location=ORT

Im Demonstrationsmodus wird zusätzlich das NAME/WERT-Paar "mode=demo" hinzugefügt:

code=1&name=Deutsche+Bank&zip=10883&location=Berlin&mode=demo



Die Parameter:

"name" (Bezeichnung der Bank - max. 58 Zeichen),
"zip" (Postleitzahl der Bank - max. 5 Zeichen),
"location" (Sitz der Bank - max. 30 Zeichen)

werden nur ausgegeben wenn die Eingabe fehlerfrei war. Im Namen der Bank sowie im Ort sind Leerzeichen durch ein "+" (ohne Anführungszeichen) gekennzeichnet. Diese sollten wieder in Leerzeichen konvertiert werden.



Der Wert des Parameters "code" wird immer ausgegeben und stellt das Ergebnis der Prüfung dar. Er kann die Werte 0-9 annehmen:

0     Die Kontonummer ist ungültig, sie kann von diesem Institut nicht vergeben werden
1     Die Kontonummer ist gültig, sie kann von diesem Institut vergeben werden
2     Fehler bei der Eingabe der Bankleitzahl (Sie ist entweder nicht 8-stellig oder enthält Buchstaben)
3     Fehler bei der Eingabe der Kontonummer (Sie ist entweder zu lang oder enthält Buchstaben
4     Eingabefehler bei der Kontonummer und Bankleitzahl (siehe 2 und 3)
5     Genereller Eingabefehler des Übergabeparameters - enthält evtl. Leerzeichen
6     Fehler im Format des Übergabeparameters
7     Die Bankleitzahl wurde in der Datenbank nicht gefunden (existiert nicht)
8     Die von der Bank verwendete Prüfmethode ist im Demonstrations-Modus nicht verfügbar
9     Die Kontonummer kann nicht geprüft werden, da die Bank entweder keine Prüfziffern verwendet oder es sich um eine spezielle Kontonummer handelt


Im Fall "code=9" kann keine Aussage zur Gültigkeit getroffen werden, die eingegebenen Kontodaten können gültig, aber auch ungültig sein. Eine generelle Ablehnung der Daten in diesen Fällen können wir nicht empfehlen. Wenn keine Akzeptanz gewünscht ist, können Sie im Onlineshop-System Ihrem Kunden eine andere Zahlungsmöglichkeit anbieten oder die Daten mit einem Anruf der Bank verifizieren.

Für eine alternative Integration in diversen Programmiersprachen wird zusätzliche der Exitcode von cKonto auf den Wert von "code" (Integer, 0-9) gesetzt.



Beispiel-Integration in Perl
#!/usr/bin/perl

my $kto	=	"712 33";		# Kontonummer
my $blz	=	"300 500 00";	# Bankleitzahl
my $key	=	'demo';		# Lizenzschlüssel

# Entfernen aller nicht-numerischen Zeichen
# aus der Kontonummer und der Bankleitzahl
$kto	=~s/\D//g;
$blz	=~s/\D//g;

# Bildung des Übergabeparameters
my $parameter	=	"knr=$kto&blz=$blz&key=$key";

# Aufruf von cKonto
my $ausgabe	=	`cKonto "$parameter"`;

# Zerlegen der Ausgabe in NAME/WERT-Paare
my @paare		=	split(/&/,$ausgabe);
my %data;
foreach (@paare) {
	my ( $name , $value )	=	split(/=/,$_);
	$data{$name}		=	$value;
}

if ($data{'code'}==1) {
	print "Die Kontonummer ist gültig\n";

	$data{'name'}	=~s/\+/ /g;	# Ersetzen von "+" durch " ".
	$data{'location'}	=~s/\+/ /g;	# Ersetzen von "+" durch " ".

	print "Name der Bank        : $data{'name'}\n";
	print "Postleitzahl der Bank: $data{'zip'}\n";
	print "Ort des Institutes   : $data{'location'}\n";

} elsif ($data{'code'}==0) {
	print "Die Kontonummer ist nicht gültig\n";

} elsif ($data{'code'}==8) {
	print "Die von der Bank verwendete Prüfmethode ist\n";
	print "im Demonstrations-Modus nicht verfügbar.\n";
}

Ein auf diesem Beispiel basierendes Modul für den einfachen Aufruf von cKonto in Perl liegt dem Programm bei.



NEU: Bankensuche
Mit cKonto können Sie nun auch Banken nach verschiedenen Kriterien suchen lassen. Für die Nutzung dieser Funktion ist kein Lizenzschlüssel erforderlich. Hier einige Beispiel-Aufrufe:
  • Allgemein: ./cKonto search "##" für Linux, cKonto.exe search "##" für Windows

  • cKonto search "nam=sparkasse"
  • cKonto search "nam=sparkasse&loc=berlin"
  • cKonto search "zip=124" (Mind. 2 Stellen)

Diese Parameter können bei der Suche genutzt werden:
  • "blz=" + (BLZ 4-8 stellig)
  • "zip=" + (PLZ 2-5 stellig)
  • "loc=" + (Ort min 3 stellig)
  • "nam=" + (Name min 3 stellig)
  • "max=" + (max. Ausgaben bis 4 stellig, Standard=30)


In der Ausgabe von cKonto wird - falls mindestens ein Ergebnis gefunden wurde - für jedes Kreditinstitut eine Zeile ausgegeben. Der Rückgabestring hat dabei jeweils die folgende Form:

        blz=www&name=xxx&zip=xyy&location=zzz

Dabei stehen:
  • www: für die BLZ des Kreditinstituts
  • xxx: für den Namen des Kreditinstituts
  • yyy: für die PLZ des Ortes
  • zzz: für den Ort

Wichtig: Es können zu einer Bankleitzahl mehrere Banken ausgegeben werden. Dies sind jeweils Filialen einer Bank, die der Vollständigkeit halber angezeigt werden. Diese Banken nutzen dabei den gleichen Prüfalgorithmus für Kontonummern, so dass es nicht entscheidend ist, zu welcher dieser (Orts-) Banken eine Kontonummer gehört.



cKonto gibt als letzte Zeile die folgende Statuszeile aus: code=a&mode=SEARCH

Der Rückgabe-Code "a" kann folgende Werte annehmen:
  • 0 - keine Fehler, Suche ergab keine Treffer
  • 1 - keine Fehler, Suche erfolgreich
  • 2 - Eingabefehler Postleitzahl
  • 3 - Eingabefehler Ort
  • 4 - Eingabefehler Name
  • 5 - Fehler: Eingabeformat unbekannt (z.B. mehr als 3 Parameter)
  • 6 - Fehler: Eingabestring hat falsches Format
  • 7 - Eingabefehler Max
  • 8 - Eingabefehler Bankleitzahl
  • 9 - Ausgabe-Begrenzung (max) erreicht


Ein vollständiger Aufruf mit allen Parametern: (Felder können leer bleiben)

          cKonto.exe search "zip=&loc=&nam=sparkasse&max=100"

.
.
blz=13050000&name=Ostseesparkasse Rostock&zip=18004&location=Rostock
blz=13050000&name=Ostseesparkasse Rostock&zip=17161&location=Teterow
blz=13050000&name=Ostseesparkasse Rostock&zip=18201&location=Bad Doberan
.
.
blz=16050000&name=Mittelbrandenburgische Sparkasse&zip=14662&location=Friesack
blz=16050000&name=Mittelbrandenburgische Sparkasse&zip=14669&location=Ketzin
blz=16050000&name=Mittelbrandenburgische Sparkasse&zip=14712&location=Rathenow
code=9&mode=SEARCH






NEU: IBAN-Modul
Mit cKonto können Sie auch für deutsche Konten die IBAN-Nummer (Format: "DE" + 20-stellig numerisch) prüfen lassen.

Die IBAN beinhaltet die Kontonummer, Bankleitzahl sowie eine 2-stellige Prüfziffer. Dadurch können Tippfehler bei IBAN-Prüfungen mit einer theroretischen Sicherheit von 99,9% erkannt und von cKonto zurückgewiesen werden.


Die Prüfung erfolgt fuer deutsche IBANs in 3 Schritten:
  • 1. Validierung der 2-stelligen IBAN Prüfziffer
  • 2. Extraktion der Kontoinformation (KNR/BLZ) aus der IBAN
  • 3. Standard cKonto Prüfung der ermittelten Kontonummer & Bankleitzahl


Einbindung:
  • Allgemein:

    ./cKonto "ibn=***&key=###" für Linux

    cKonto.exe "ibn=***&key=###" für Windows


  • *** = IBAN, ### = Gültiger cKonto-Lizenzschlüssel


  • Beispiel:

    cKonto.exe "ibn=DE07100500006603032331&key=070707:info@mail:158254732596"



Die Ausgabe von cKonto entspricht dem Format der Kontonummer-/Bankleitzahl Prüfung:
Beispiel: code=1&name=Landesbank Berlin - Berliner Sparkasse&zip=10889&location=Berlin

Einige Rückgabewerte zum Status sind im IBAN-Modus abweichend:

  • "code=2" => Eingabefehler BLZ
  • "code=3" => Eingabefehler KNR
  • "code=4" => Eingabefehler IBAN



NEU ab cKonto 2.9.1: Internationales SEPA-Modul fuer registrierte IBANs
Mit cKonto können Sie jetzt alle registrierten IBAN-Kontonummern auf Gueltigkeit prüfen lassen. Die IBANs enthalten Kontonummer, Bankleitzahl sowie eine 2-stellige Prüfziffer. Dadurch können Tippfehler bei IBAN-Prüfungen mit einer theroretischen Sicherheit von 99,9% erkannt und von cKonto zurückgewiesen werden.




Einbindung:
  • Allgemein:

    ./cKonto sepa "ibn=***&bic=+++&key=###" für Linux

    cKonto.exe sepa "ibn=***&bic=+++&key=###" für Windows


  • *** = IBAN, +++ = BIC, ### = Gültiger cKonto-Lizenzschlüssel


  • Beispiel:

    cKonto.exe sepa "ibn=AT611904300234573201&bic=NOLADE21&key=070707:info@mail:158254732596"



Die Ausgabe von cKonto sepa entspricht folgendem Format:
Beispiel: code=1&iban=AT611904300234573201&country=AUSTRIA&mode=sepa

Diese Rückgabewerte zum Status sind im SEPA-Modus abweichend:

  • "code=2" => Eingabefehler BIC
  • "code=3" => Eingabefehler IBAN
  • "code=4" => IBAN Format falsch
  • "code=9" => IBAN korrekt, BIC nicht pruefbar







Lizensierung, Updates und Support
Testen Sie cKonto vor der Lizensierung in der von Ihnen gewählten Systemumgebung. Wir empfehlen Ihnen, die Integration in Ihre Software bereits vor der Lizensierung vorzunehmen um eventuelle Probleme frühzeitig zu erkennnen. Zu diesem Zweck kann eine Demoversion über das Internet bezogen werden.

Ein persönlicher Registrierungsschlüssel für cKonto kann hier bestellt werden. Die Lieferung des Registrierungsschlüssels erfolgt per E-Mail.

Wir empfehlen Ihnen dringend, jeweils die aktuelle Version von cKonto zu nutzen. Sie enthält die aktuellen Prüfalgorithmen sowie Bankleitzahlen und kann jederzeit über unseren Server bezogen werden. Updates und neuere Programmversionen innerhalb zwei Jahren nach der Lizensierung sind kostenfrei.

Der persönliche Registrierungsschlüssel enthält Ihre E-Mail Adresse und ist daher nicht übertragbar. Wir bitten Sie daher, uns bei einer Lizenzübertragung den Namen und die E-Mail Adresse des künftigen Lizenznehmers mitzuteilen um ihm einen persönlichen Registrierungsschlüssel senden zu können.


Updates und weitere Informationen zu cKonto                       E-Mail Support:




© NetSlave GmbH, www.netslave.de - www.ckonto.de