<div dir="ltr"><div>Hi Ralf,</div><div>Thanks so much for this info.<br></div><div>Just to clarify, the checks that are to be performed by the tool on a given <bank-id> and <account-id> will comprise</div><div>of matching the BIC from the database of the respective country and constraint checking on the <account-id>.</div><div><br></div><div>In the case of Germany, every bank has a method field which is used to verify the account number, since no such field</div><div>is present in the available bank data file, this is not applicable here, right?</div><div><br></div><div>Thanks,</div><div>Prasun<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 13 Jul 2020 at 14:22, Ralf Habacker <<a href="mailto:ralf.habacker@freenet.de" target="_blank">ralf.habacker@freenet.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Am 11.07.20 um 07:44 schrieb Thomas Baumgart:<br>
> Prasun,<br>
> <br>
> On Montag, 6. Juli 2020 21:30:09 CEST Prasun Kumar wrote:<br>
> <br>
>> Hi mentors,<br>
>> Can you guide me on how should I proceed with adding support for additional<br>
>> countries?<br>
>><br>
>> As pointed out in the initial discussions by Ralf,<br>
>> <a href="https://invent.kde.org/office/kmymoney/-/blob/master/kmymoney/plugins/ibanbicdata/" rel="noreferrer" target="_blank">https://invent.kde.org/office/kmymoney/-/blob/master/kmymoney/plugins/ibanbicdata/</a><br>
>> contains some python scripts which are to be used to generate databases<br>
>> which should be added to the library.<br>
>> The scripts contain the link to the respective bank websites which as much<br>
>> I could understand are related to IBANs.<br>
>><br>
>> However, it would be helpful to get a confirmation about the expected<br>
>> outcomes of this addition.<br>
<br>
There two goals<br>
- Add support for additional countries to the checking library. The <br>
bankdata files also need to be added corresponding to these countries.<br>
<br>
- Create an API for querying the SQLite databases to enable the <br>
integration of these databases into other applications.<br>
<br>
In the kmymoney case they will be a drop in replacement for the present <br>
and outdated sqlite databases and the association api (the files located <br>
at <br>
<a href="https://invent.kde.org/office/kmymoney/-/tree/master/kmymoney/plugins/ibanbicdata" rel="noreferrer" target="_blank">https://invent.kde.org/office/kmymoney/-/tree/master/kmymoney/plugins/ibanbicdata</a>) <br>
  There will be only a few modifications required to switch from the <br>
present implementation inside kmymoney to the implementation provided by <br>
ktoblzcheck, e.g. use classes provided by ktoblzcheck.<br>
<br>
> I am not sure if that is really feasible. My dutch is very limited but the provided<br>
> list only contains the BIC for each institution. <br>
Ths is not true, it also provides the bank identifier used to build <br>
iban's, see the second column of <br>
<a href="https://www.betaalvereniging.nl/betalingsverkeer/giraal-betalingsverkeer/bic-sepa-transacties" rel="noreferrer" target="_blank">https://www.betaalvereniging.nl/betalingsverkeer/giraal-betalingsverkeer/bic-sepa-transacties</a>, <br>
which is the source for the sqlite database used by kmymoney for netherlands<br>
<br>
BIC             Identifier<br>
AABNNL2A        AABN<br>
<br>
According to <br>
<a href="https://www.xe.com/ibancalculator/sample/?ibancountry=the%20netherlands" rel="noreferrer" target="_blank">https://www.xe.com/ibancalculator/sample/?ibancountry=the%20netherlands</a> <br>
a IBAN for netherland looks like this<br>
<br>
IBAN    NL91 ABNA 0417 1643 00<br>
ISO Country Code        NL (The Netherlands)<br>
IBAN Check Digits       91<br>
BBAN    ABNA 0417 1643 00<br>
Bank Identifier ABNA<br>
Account Number  0417164300<br>
SEPA Member     Yes<br>
<br>
and with the help of the IBAN format specification at <br>
<a href="https://www.ecb.europa.eu/paym/integration/retail/sepa/iban/shared/pdf/iban_registry.pdf" rel="noreferrer" target="_blank">https://www.ecb.europa.eu/paym/integration/retail/sepa/iban/shared/pdf/iban_registry.pdf</a> <br>
it will be possible to implement checks for IBAN's from netherlands (see <br>
page 59)<br>
<br>
Data element                               Example<br>
Name of country                            The Netherlands<br>
Country code as defined in ISO 3166        NL<br>
Domestic account number example            041 71 64 300<br>
BBAN<br>
BBAN structure                             4!a10!n<br>
BBAN length                                14<br>
Bank identifier position within the BBAN   Positions 1-4<br>
Bank identifier length                     4!a<br>
Bank identifier example                    ABNA<br>
BBAN example                               ABNA0417164300<br>
IBAN<br>
IBAN structure                             NL2!n4!a10!n<br>
IBAN length                                18<br>
IBAN electronic format example             NL91ABNA0417164300<br>
IBAN print format example                  NL91 ABNA 0417 1643 00<br>
SEPA Country                               Yes<br>
<br>
<br>
where the following character representations are used in this document <br>
(see page 5 from the above mentioned document):<br>
<br>
n<br>
  Digits (numeric characters 0 to 9 only)<br>
a<br>
  Upper case letters (alphabetic characters A-Z only)<br>
c<br>
  upper and lower case alphanumeric characters (A-Z, a-z and 0-9)<br>
e<br>
  blank space<br>
The following length indications are used in this document:<br>
nn!<br>
  fixed length<br>
nn<br>
  maximum length<br>
<br>
<br>
> The swiss version points to a larger list, but reading the specs at<br>
> <br>
> <a href="https://www.six-group.com/dam/download/banking-services/interbank-clearing/de/bc_bank_master/bc_records.pdf" rel="noreferrer" target="_blank">https://www.six-group.com/dam/download/banking-services/interbank-clearing/de/bc_bank_master/bc_records.pdf</a><br>
> <br>
> (sorry, only in German) shows me, that not enough information is contained to be usable<br>
> for your endeavor. Just like with the Dutch version, the only information is the BIC<br>
<br>
The files those specification is designed for is located at <br>
<a href="https://www.six-group.com/interbank-clearing/de/home/bank-master-data/download-bc-bank-master.html" rel="noreferrer" target="_blank">https://www.six-group.com/interbank-clearing/de/home/bank-master-data/download-bc-bank-master.html</a>, <br>
which provides a column SSIC-IID, which is for example 001008 for the <br>
SNB (<a href="https://en.wikipedia.org/wiki/Swiss_National_Bank" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/Swiss_National_Bank</a>). According to <br>
the information for switz bank identifier, which is 5!n, that should be <br>
00100.<br>
<br>
<br>
> One thing I could envision is that you can add a separate table with columns like<br>
> <br>
>     Country - BIC - Name of institution - Valid from - Valid until<br>
> <br>
> and provide it to applications, so that they can check for valid BICs. <br>
<br>
Which is the case for recent kmymoney.<br>
<br>
In the second phase of this project an up to date data bank file will be <br>
provided and the associated api in the third phase.<br>
<br>
> But I leave<br>
> that to Ralf since I don't know what the goal of the project is at that point. The<br>
> one thing I can say is, that the mentioned information is not related to IBANs.<br>
<br>
Here also with the help of the IBAN format specification at <br>
<a href="https://www.ecb.europa.eu/paym/integration/retail/sepa/iban/shared/pdf/iban_registry.pdf" rel="noreferrer" target="_blank">https://www.ecb.europa.eu/paym/integration/retail/sepa/iban/shared/pdf/iban_registry.pdf</a> <br>
it will be possible to implement checks for IBAN's from switzerland (see <br>
page 76)<br>
<br>
Data element                               Example<br>
Name of country                            Switzerland<br>
Country code as defined in ISO 3166        CH<br>
Domestic account number example            762 1162-3852.957<br>
BBAN<br>
BBAN structure                             5!n12!c<br>
BBAN length                                17<br>
Bank identifier position within the BBAN   Positions 1-5<br>
Bank identifier length                     5!n<br>
Bank identifier example                    00762<br>
BBAN example                               00762011623852957<br>
IBAN<br>
IBAN structure                             CH2!n5!n12!c<br>
IBAN length                                21<br>
IBAN electronic format example             CH9300762011623852957<br>
IBAN print format example                  CH93 0076 2011 6238 5295 7<br>
SEPA Country                               Yes<br>
<br>
Regards<br>
Ralf<br>
<br>
</blockquote></div>