Adding support for additional countries

Ralf Habacker ralf.habacker at freenet.de
Mon Jul 13 09:52:04 BST 2020


Am 11.07.20 um 07:44 schrieb Thomas Baumgart:
> Prasun,
> 
> On Montag, 6. Juli 2020 21:30:09 CEST Prasun Kumar wrote:
> 
>> Hi mentors,
>> Can you guide me on how should I proceed with adding support for additional
>> countries?
>>
>> As pointed out in the initial discussions by Ralf,
>> https://invent.kde.org/office/kmymoney/-/blob/master/kmymoney/plugins/ibanbicdata/
>> contains some python scripts which are to be used to generate databases
>> which should be added to the library.
>> The scripts contain the link to the respective bank websites which as much
>> I could understand are related to IBANs.
>>
>> However, it would be helpful to get a confirmation about the expected
>> outcomes of this addition.

There two goals
- Add support for additional countries to the checking library. The 
bankdata files also need to be added corresponding to these countries.

- Create an API for querying the SQLite databases to enable the 
integration of these databases into other applications.

In the kmymoney case they will be a drop in replacement for the present 
and outdated sqlite databases and the association api (the files located 
at 
https://invent.kde.org/office/kmymoney/-/tree/master/kmymoney/plugins/ibanbicdata) 
  There will be only a few modifications required to switch from the 
present implementation inside kmymoney to the implementation provided by 
ktoblzcheck, e.g. use classes provided by ktoblzcheck.

> I am not sure if that is really feasible. My dutch is very limited but the provided
> list only contains the BIC for each institution. 
Ths is not true, it also provides the bank identifier used to build 
iban's, see the second column of 
https://www.betaalvereniging.nl/betalingsverkeer/giraal-betalingsverkeer/bic-sepa-transacties, 
which is the source for the sqlite database used by kmymoney for netherlands

BIC     	Identifier
AABNNL2A	AABN

According to 
https://www.xe.com/ibancalculator/sample/?ibancountry=the%20netherlands 
a IBAN for netherland looks like this

IBAN 	NL91 ABNA 0417 1643 00
ISO Country Code	NL (The Netherlands)
IBAN Check Digits	91
BBAN	ABNA 0417 1643 00
Bank Identifier	ABNA
Account Number	0417164300
SEPA Member	Yes

and with the help of the IBAN format specification at 
https://www.ecb.europa.eu/paym/integration/retail/sepa/iban/shared/pdf/iban_registry.pdf 
it will be possible to implement checks for IBAN's from netherlands (see 
page 59)

Data element                               Example
Name of country                            The Netherlands
Country code as defined in ISO 3166        NL
Domestic account number example            041 71 64 300
BBAN
BBAN structure                             4!a10!n
BBAN length                                14
Bank identifier position within the BBAN   Positions 1-4
Bank identifier length                     4!a
Bank identifier example                    ABNA
BBAN example                               ABNA0417164300
IBAN
IBAN structure                             NL2!n4!a10!n
IBAN length                                18
IBAN electronic format example             NL91ABNA0417164300
IBAN print format example                  NL91 ABNA 0417 1643 00
SEPA Country                               Yes


where the following character representations are used in this document 
(see page 5 from the above mentioned document):

n
  Digits (numeric characters 0 to 9 only)
a
  Upper case letters (alphabetic characters A-Z only)
c
  upper and lower case alphanumeric characters (A-Z, a-z and 0-9)
e
  blank space
The following length indications are used in this document:
nn!
  fixed length
nn
  maximum length


> The swiss version points to a larger list, but reading the specs at
> 
> https://www.six-group.com/dam/download/banking-services/interbank-clearing/de/bc_bank_master/bc_records.pdf
> 
> (sorry, only in German) shows me, that not enough information is contained to be usable
> for your endeavor. Just like with the Dutch version, the only information is the BIC

The files those specification is designed for is located at 
https://www.six-group.com/interbank-clearing/de/home/bank-master-data/download-bc-bank-master.html, 
which provides a column SSIC-IID, which is for example 001008 for the 
SNB (https://en.wikipedia.org/wiki/Swiss_National_Bank). According to 
the information for switz bank identifier, which is 5!n, that should be 
00100.


> One thing I could envision is that you can add a separate table with columns like
> 
>     Country - BIC - Name of institution - Valid from - Valid until
> 
> and provide it to applications, so that they can check for valid BICs. 

Which is the case for recent kmymoney.

In the second phase of this project an up to date data bank file will be 
provided and the associated api in the third phase.

> But I leave
> that to Ralf since I don't know what the goal of the project is at that point. The
> one thing I can say is, that the mentioned information is not related to IBANs.

Here also with the help of the IBAN format specification at 
https://www.ecb.europa.eu/paym/integration/retail/sepa/iban/shared/pdf/iban_registry.pdf 
it will be possible to implement checks for IBAN's from switzerland (see 
page 76)

Data element                               Example
Name of country                            Switzerland
Country code as defined in ISO 3166        CH
Domestic account number example            762 1162-3852.957
BBAN
BBAN structure                             5!n12!c
BBAN length                                17
Bank identifier position within the BBAN   Positions 1-5
Bank identifier length                     5!n
Bank identifier example                    00762
BBAN example                               00762011623852957
IBAN
IBAN structure                             CH2!n5!n12!c
IBAN length                                21
IBAN electronic format example             CH9300762011623852957
IBAN print format example                  CH93 0076 2011 6238 5295 7
SEPA Country                               Yes

Regards
Ralf



More information about the Kde-finance-apps mailing list