IBAN - International Bank Account Number - SWIFT

Hinweise zu interessanten Quellen und Projekten

Moderator: Moderatoren

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

IBAN - International Bank Account Number - SWIFT

Beitrag von brandelh »

Infos zum Thema und Berechnungshilfen für die Prüfziffernberechnung (Zahl ist länger als 18 Stellen, dennoch berechnen ...)

Allgemeine Beschreibung mit vielen Links:

:arrow: https://de.wikipedia.org/wiki/Internati ... unt_Number

Hier kann man z.B. eine IBAN online checken

:arrow: http://www.tbg5-finance.org/?ibancheck.shtml

Hier wird erklärt, wie die Prüfziffer (auch viele andere) berechnet wird, insbesondere wie man die 18 Stellen Begrenzung umgeht.

:arrow: http://www.pruefziffernberechnung.de/I/IBAN.shtml

Hier noch ein Link zur Erklärung von SWIFT

:arrow: http://de.wikipedia.org/wiki/SWIFT
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Tom »

Die IBAN ist eigentlich simpel, denn sie besteht aus einem Ländercode, der BLZ und der Kontonummer - wäre da nicht der zweistellige Prüfcode, der dem Ländercode (z.B. "DE") folgt. Um diesen zu berechnen, muss die sich aus Ländercode, BLZ und Kontonr. ergebende zweiundzwanzigstellige (!) Zahl durch 97 geteilt werden. Der Rest (Modulus), von 98 abgezogen, ergibt den Prüfcode. Eigentlich kein Problem - aber man kann mit Xbase++ (und vielen anderen Compilern) nicht mit 22-stelligen Zahlen rechnen. Die Zahl muss fraktioniert werden, in unserem Fall auf 9 Stellen, und man muss sich dann jeweils durch den Rest hangeln. Anyway, ich habe es umgesetzt, die Funktion ist auch sehr überschaubar:

Code: Alles auswählen

* IBAN-Kalkulation mit Xbase++, (C) Tom Liehr 2012 - frei verwendbar, bitte Urheberrechtshinweis belassen
* BLZ und Kontonr. sind Pflichtparameter
FUNCTION CalcIban(cCiBlz,cCiKonto,cCiIban,cCiLaenderCode)
LOCAL cMyIban := '', nMod1,nMod2,nMod3
DEFAULT cCiIban TO Space(22),cCiLaenderCode TO 'DE'
* ohne sinnvolle Parameter leer/Ursprungswert zurückgeben:
if Empty(cCiBlz) .or. Empty(cCiKonto) .or. Len(NurZiffern(cCiBlz)) < 8
  RETURN cCiIban
endif
* 22-stellige "Vorlage" bauen
cMyIban := NurZiffern(cCiBlz)+PadL(NurZiffern(cCiKonto),10,'0')+AllTrim(Str(IbanCharValue(cCiLaenderCode[1])))+AllTrim(Str(IbanCharValue(cCiLaenderCode[2])))+'00'
* Mod 97 für erste Fraktion:
nMod1 := Val(Left(cMyIban,9)) % 97
* Mod 97 für zweite Fraktion:
nMod2 := Val(AllTrim(Str(nMod1))+Substr(cMyIban,10,9-Len(AllTrim(Str(nMod1))))) % 97
* Mod 97 für dritte Fraktion, das ist dann der gewnschte Wert:
nMod3 := Val(AllTrim(Str(nMod2))+Trim(Substr(cMyIban,10+(9-Len(AllTrim(Str(nMod1)))),9))) % 97
* IBAN zusammensetzen:
cMyIban := cCiLaenderCode+PadL(LTrim(Str(98-nMod3,2,0)),2,"0")+NurZiffern(cCiBlz)+PadL(NurZiffern(cCiKonto),10,'0')
RETURN cMyIban

* Codierung: A = 10, B = 11 usw.
FUNCTION IbanCharValue(c)
RETURN Asc(Upper(c))-55

* Liefert aus einem beliebigen String lediglich die Ziffern - als String
FUNCTION NurZiffern(c)
LOCAL n, cReturnValue := ''
FOR n := 1 TO Len(c)
	IF c[n] $ "0123456789"
		cReturnValue += c[n]
	ENDIF
NEXT
RETURN cReturnValue

Edit: Falsches "PadR()" gegen "PadL()" ausgetauscht.
Zuletzt geändert von Tom am Mi, 25. Sep 2013 9:33, insgesamt 2-mal geändert.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Jan »

=D>

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Manfred »

Jan, seit wann stotterst Du denn?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Jan »

T-t-t-t-tu ich d-d-d-d-doch garnicht

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Koverhage »

Danke.
Gruß
Klaus
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Wolfgang Ciriack »

Prima, sollte in die Wissensbasis verschoben werden !
Viele Grüße
Wolfgang
Josef

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Josef »

Tom hat geschrieben:Die IBAN ist eigentlich simpel, denn sie besteht aus einem Ländercode,...............
@Tom,

nach sowas hab ich gesucht. Das ist super von Dir!!! =D>

Jetzt fehlt nur noch ein Code für die SEPA XML Datei, dann könnt ich wieder ruhig schlafen, auch wenn´s noch ein paar MOnate bis zur Einführung dauert.

Gruß
Sepp
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Wolfgang Ciriack »

Hallo Tom,
m.E. ist in deiner CalcIban Routine ein Fehler, da das Konto, falls kürzer als 10 Stellen, linksseitig mit Nullen aufgefüllt werden muss.

Aus PadR(NurZiffern(cCiKonto),10,'0') sollte also PadL(NurZiffern(cCiKonto),10,'0') werden.

Und im Rückgabewert ebenfalls:

cMyIban := cCiLaenderCode+PadL(LTrim(Str(98-nMod3,2,0)),2,"0")+NurZiffern(cCiBlz)+PadL(NurZiffern(cCiKonto),10,'0')
Viele Grüße
Wolfgang
Benutzeravatar
michael32710
UDF-Programmierer
UDF-Programmierer
Beiträge: 76
Registriert: Sa, 17. Nov 2007 11:02
Wohnort: Niedersachsen
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von michael32710 »

Wolfgang scheint recht zu haben. Auf http://WWW.IBAN.DE steht:
... Dazu werden in Deutschland die achtstellige Bankleitzahl, die zehnstellige Kontonummer und die zweistellige, alphanumerische Länderkennung benötigt. Kontonummern mit weniger als zehn Stellen werden mit führenden Nullen aufgefüllt.
MfG
Michael
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Tom »

Wolfgang scheint recht zu haben.
Das mag sein. Ich prüfe Kontonummern bereits bei der Eingabe; die Füllung in der IBAN-Funktion habe ich nur der Form halber verwendet.
Herzlich,
Tom
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von UliTs »

Über Wolfgangs Einwand bin ich gestern auch drüber gestolpert.
Hat mich leider ein paar Stunden gekostet ...

Tom, kannst Du Deinen obigen Code (mit "Edit-Bemerkung") für die Nachwelt korrigieren :?: :)

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Tom »

Ich habe den Quellcode korrigiert.
Herzlich,
Tom
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Koverhage »

Nur mal so als Hinweis,

die Automatik schlägt fehl, wenn die Kontonummer ohne Unterkonto angegeben wird.
z.B. Kto-Nr. 1234567, Bank: Commerzbank
Aus dieses Konto Überweisungen durchführen klappt, es wird wohl bei der Bank
automatisch "00" für das Unterkonto angehängt.
Die Umwandlung in IBAN schlägt dann fehl.
Gruß
Klaus
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Wolfgang Ciriack »

Ja, es gibt auch eine andere IBAN-Ckecksumme (DExx), wenn man sich in der Kontonummer vertippt.
Leider gibt es wohl sehr viele verschiedene Checksummen-Berechnungen innerhalb der Kontonummer,
das haben die IBAN-Rechner im Internet (z.B. der Sparkasse) implementiert.
Viele Grüße
Wolfgang
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Manfred »

Hm,

kann mir mal jemand näheres zu der Unterkontosache mit den "00" sagen?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Koverhage »

Manfred,

siehe den Link den Michael37210 gepostet hat (http://www.iban.de/)
Eventuell helfen auch die Bankfachleute hier im Forum weiter.
Gruß
Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von brandelh »

Ist denn die "Kontonummer ohne Unterkonto" eine gültige Kontonummer im normalen Zahlungsverkehr ?
Wenn nein, ist die Fehlermeldung mehr als berechtigt :badgrin:
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Koverhage »

Das ist das Problem, ja die Kontonummer ist gültig, die Bank setzt wohl automatisch dann die "0" bzw. "00"
für das Hauptkonto.

@Manfred,
meine normale Kontonummer hat am Ende "00", mein VISA Verrechnungskonto die "18".
Es gibt je nach Kontoart wohl noch mehr Kodierungen.
Gruß
Klaus
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Manfred »

Hm,

verstehe ich jetzt nicht auf die Schnelle. :confused2:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von brandelh »

Das scheint ein Problem von Geschäftsleuten zu sein, ich habe bei meinen Banken je Konto immer EINE Kontonummer die auch passt ;-)
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Martin Altmann »

Hubert,
jeder hat bei einer Bank je Konto genau eine Kontonummer - alles andere wäre Unsinn :!: :lol:
Es gibt aber halt verschiedene Verfahren um bei mehreren Konten bei einer Bank große Teile der Kontonummern gleich zu halten - mittels sogenannter Unterkonten!
Das Girokonto bekommt am Ende des Stammes z.B. eine 00 angehangen. Das Tagesgeldkonto z.B. eine 05. Das Aktiendepot eine 10. Das Festgeld eine 11. Etc.
Wenn also die Kontonummer die 12342400 ist, handelt es sich bei dem Kunden um sein Girokonto. Bei der 12342410 halt um sein Aktiendepot.
Andere Banken, andere Regeln.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Bertram Hansen »

Das gemeldete Problem von Klaus hat mich jetzt zur Überprüfung meiner IBAN-Berechnung animiert.

Also wenn ich eine kleinere Kontonummer (unter 10 Stellen) eingebe, dann fülle ich diese vor der Iban-Berechnung mit Vornullen auf (aus "123456" wird "0000123456")
Genau das macht der Iban-Rechner http://www.iban.de/iban-berechnen.html auch.
Dort steht ja auch der Hinweis, dass für die Iban Berechnung die Unterkontonummern mit übergeben werden muss.
Also wird aus der "12345600" die "0012345600" und damit führe ich die Iban-Berechnung durch.
Wenn aktuell bzw. in der Vergangenheit die Bank eine Konto-Nr. z.B. "123456" (Bankintern also "1234560000") auch ohne Unterkontonummer akzeptiert hat, dann wird das in Zukunft wohl nicht mehr so sein.
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von Tom »

In der Regel enden Girokontonummern mit einer Doppelnull, wenn es sich um das Hauptkonto handelt, also beispielsweise das einzige Girokonto einer Person. Die Kontonummer lautet also nicht "12345", sondern tatsächlich "1234500" - auf Länge gebracht dann richtigerweise "0001234500". Die beiden Nullen am Ende weichen anderen Ziffern, wenn man zusätzlich zum Stammkonto Tagesgeldkonten, Zweitkonten, Depots oder ähnliches einrichtet. Das war aber schon immer so und hat sich mit SEPA nicht geändert. Leider kann man hier keinen Automatismus greifen lassen, wenn man IBANs kalkuliert und keine Doppelnull am Ende findet, denn es ist absolut möglich, dass ein Zahler ein Konto angegeben hat, das auf andere Ziffern endet.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: IBAN - International Bank Account Number - SWIFT

Beitrag von brandelh »

Und ich bleibe dabei, ein "Hauptkonto" gibt es nicht, sondern nur eine gemeinsame Ziffer,
dass eine Bank eine solche mit "00" rechts auffüllt macht sie noch lange nicht gültig ! :badgrin:
Gruß
Hubert
Antworten