Results 1 to 14 of 14

Thread: Banknummer naar Iban

  1. #1

    Banknummer naar Iban

    Hoi Allemaal,

    Is er een functie die banknummers en gironummers omzet naar IBAN voor Delphi 5?

    Groetjes,

    Robert

    P.S.
    Het e-mail heb ik toch dankzij jullie opgelost, mijn dank is zeer groot!

  2. #2
    Dit topic al gelezen?

    Bart
    Last edited by Bart B; 09-Jan-14 at 15:53. Reason: typo

  3. #3
    Aan alleen een banknummer heb je niet voldoende om een IBAN te kunnen maken, je hebt daar ook de BIC van de betreffende bank voor nodig. De gegevens om met het rekeningnummer de bank te bepalen zijn niet vrijgegeven.
    Marcel

  4. #4
    Er zijn wel websites die het als een api aanbieden. Sommige zijn zelfs gratis, maar dan wel met een beperking of een fair use policy.

    Overigens is de BIC ook niet voldoende. ABN-AMRO heeft bijvoorbeeld ook een stuk Fortis in zich. Beide hebben dezelfde BIC, maar een ander vierletterig bankid in het IBAN nummer, dus met alleen een rekeningnummer+BIC van bijv. ABN kun je nog geen IBAN maken. Aangezien het ook weer lastig is om er achter te komen wat het bankid is, heb ik het uiteindelijk opgegeven en een api ingezet. Volgens mij was dat deze:

    http://www.openiban.nl/
    1+1=b

  5. #5
    Cool, die had ik gemist. Dus als je daar een Delphi schilletje omheen maakt ben je klaar Robert.
    Marcel

  6. #6
    Misschien deze grenzenverleggende code:

    Delphi Code:
    1. procedure Parse(Json: string; Results: TStringList);
    2. var
    3.   State: Integer;
    4.   sp, tp: Integer;
    5.   r: string;
    6.   c: Char;
    7. begin
    8.   State := 0;
    9.   for c in Json do
    10.   begin
    11.     case State of
    12.       0: // Voor id
    13.         begin
    14.           if c = '"' then
    15.             State := 1;
    16.         end;
    17.       1: // Id
    18.         begin
    19.           if c = '"' then
    20.           begin
    21.             State := 2;
    22.             r := r + '=';
    23.           end else
    24.             r := r + c;
    25.         end;
    26.       2: // Tussen id en value
    27.         begin
    28.           if c = '"' then
    29.             State := 3;
    30.         end;
    31.       3: // Value
    32.         begin
    33.           if c = '"' then
    34.           begin
    35.             State := 0;
    36.             Results.Add(r);
    37.             r := '';
    38.           end
    39.           else
    40.             r := r + c;
    41.         end;
    42.     end;
    43.   end;
    44. end;
    45.  
    46. function ConvertToIban(BankNumber: string): string;
    47. var
    48.   Values: TStringList;
    49.   Http: TIdHttp;
    50. begin
    51.   Http := TIdHttp.Create;
    52.   Values := TStringList.Create;
    53.   try
    54.     Parse(Http.Get(Format('http://www.openiban.nl/?rekeningnummer=%s&output=json', [BankNumber])), Values);
    55.     if Values.Values['error'] <> '' then
    56.       raise Exception.Create(Values.Values['error']);
    57.     Result := Values.Values['iban'];
    58.   finally
    59.     Values.Free;
    60.     Http.Free;
    61.   end;
    62. end;

    En dan aanroepen met:
    Delphi Code:
    1. ShowMessage(ConvertToIban('12345'));
    In plaats van deze rudimentaire Json parser kun je natuurlijk ook een echte gebruiken, of gewoon met stringreplace aan de slag. En in Delphi XE5 zit schijnbaar ingebouwde functionaliteit om Json REST services aan te spreken, maar dat heb ik nog niet geprobeerd.

    Overigens hoor ik net dat de overstap een halfjaar is uitgesteld, dus je hebt nog even.
    1+1=b

  7. #7
    Eerste instantie had ik http://www.openiban.nl/ ook geprobeerd maar een
    aantal nummer konden hier niet omgezet worden waar het www.iban-converteren.nl wel lukte.
    Last edited by Fonzie; 10-Jan-14 at 15:06.

  8. #8
    Dat kan. Ze garanderen geen 100% volledigheid of nauwkeurigheid in de gratis versie. Wellicht kun je de betaalde versie kiezen die nauwkeuriger zou moeten zijn. Als www.iban-converteren.nl een bruikbare api heeft, dan kan dat natuurlijk ook, maar aangezien daar bij staat: 'Tarieven op aanvraag', zoek ik dan liever meteen verder.
    1+1=b

  9. #9
    Member
    Join Date
    Mar 2003
    Location
    Netherlands
    Posts
    638
    Hmm, als ik dat stukje javascript bekijk is het niet veel meer dan een koppeling op basis van de eerste reeks cijfers.

    Als een rekening nummer begint met bijvoorbeeld een 1 of een 3 dan is het een rabo rekening dus je zou eigenlijk zelf een mapping kunnen maken op basis van die gegevens.

    else if(b.startsWith("1")||b.startsWith("3")){
    c="Rabobank";
    d="Rabobank Nederland";
    e="RABONL2U";
    f="RABO"

    Hierboven een klein stukje uit die javascript functie.

    Als je dit zelf zou gaan doen dan heb je ook de mogelijkheid om je eigen mapping uit te kunnen breiden.

    Kijk ook eens naar deze dienst: http://nl.ibancalculator.com/
    of http://www.ibannl.org/
    Alex "leXTer" van der Vliet
    Delphi Programmer

    And may the source be with you.

  10. #10
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Quote Originally Posted by alexvdvliet View Post
    dus je zou eigenlijk zelf een mapping kunnen maken op basis van die gegevens.
    Tja, dat gaat dus niet altijd op, zoals GolezTrol al eerder aangaf.
    Quote Originally Posted by GolezTrol View Post
    ABN-AMRO heeft bijvoorbeeld ook een stuk Fortis in zich. Beide hebben dezelfde BIC, maar een ander vierletterig bankid in het IBAN nummer,
    TMemoryLeak.Create(Nil);

  11. #11
    Zou mijn vingers hieraan niet willen branden, tools hebben totaal geen garantie en juist een rekening nr moet 100% zijn
    Freeware programmer

  12. #12
    Precies. En als je geld gaat halen is dat niet interessant, maar als je geld over gaat maken wil je zeker weten dat je een betrouwbare service hebt. Een service die er zo af en toe een eigen rekeningnummer tussendoor zet kan zo ongemerkt je betalingen gaan omleiden.
    Marcel

  13. #13
    Member
    Join Date
    Mar 2003
    Location
    Netherlands
    Posts
    638
    Ik heb een klein voorbeeldje voor je gemaakt hoe je de data van http://www.ibannl.org/ kan gebruiken binnen je applicatie. Het verdient geen schoonheidsprijs maar het geeft je een start.
    Attached Files Attached Files
    Alex "leXTer" van der Vliet
    Delphi Programmer

    And may the source be with you.

  14. #14
    Member
    Join Date
    Mar 2012
    Location
    Nederland
    Posts
    64
    https://www.ibanbicservice.nl/ is de officiële site die is opgericht door de Nederlandse banken en zal de meest betrouwbare resultaten bieden. Ze bieden zelf geen webservice aan (wel via zogenaamde 'serviceproviders', maar dan moet je contact met hen opnemen) maar wel de mogelijkheid voor bulkverwerking. Zorg dat jouw programma een csv bestand kan maken dat ibanbicservice.nl kan verwerken en maak een inleesroutine waarmee de resultaten terug ingelezen kunnen worden. Je kan dan bestaande rekeningnummers overzetten naar IBAN. Nieuwe rekeningnummers voer je vervolgens meteen in met de correcte IBAN.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •