<div dir="ltr"><div>Thanks.</div><div><br></div><div>What about this?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><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></blockquote><div> </div><div>I mean, the only checks that would be performed for additional countries on <account_id> are size constraints, if I understand correctly? <br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 14 Jul 2020 at 19:53, Ralf Habacker <<a href="mailto:ralf.habacker@freenet.de">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 14.07.20 um 13:33 schrieb Prasun Kumar:<br>
Hi Prasun,<br>
<br>
> The script netherlands.py uses xlrd module of Python. How to add this > module dependency in CMake?<br>
I did not found a "ready to used" cmake script, so I suggest to run the <br>
following simple python script from cmake, which checks, if a python <br>
module is loadable.<br>
<br>
cat cmake/check_python_module.py<br>
----------------------------------------<br>
import imp,sys<br>
try:<br>
imp.find_module(sys.argv[1])<br>
exit(0)<br>
except ImportError:<br>
exit(1)<br>
----------------------------------------<br>
<br>
Run that script by cmake with<br>
<br>
python cmake/check_python_module.py xrld<br>
<br>
and check the exit code 0 - found, 1 - not found.<br>
<br>
Additional the file README.md should get the new dependency listed e.g.<br>
<br>
installed python modules: ctypes, sqlite3, xlrd >= 0.7.1<br>
<br>
Regards<br>
Ralf<br>
> <br>
> Thanks.<br>
> Prasun<br>
> <br>
> On Tue, 14 Jul 2020 at 01:25, Prasun Kumar <<a href="mailto:prasun.code@gmail.com" target="_blank">prasun.code@gmail.com</a> <br>
> <mailto:<a href="mailto:prasun.code@gmail.com" target="_blank">prasun.code@gmail.com</a>>> wrote:<br>
> <br>
> Hi Ralf,<br>
> Thanks so much for this info.<br>
> Just to clarify, the checks that are to be performed by the tool on<br>
> a given <bank-id> and <account-id> will comprise<br>
> of matching the BIC from the database of the respective country and<br>
> constraint checking on the <account-id>.<br>
> <br>
> In the case of Germany, every bank has a method field which is used<br>
> to verify the account number, since no such field<br>
> is present in the available bank data file, this is not applicable<br>
> here, right?<br>
> <br>
> Thanks,<br>
> Prasun<br>
> <br>
> <br>
> On Mon, 13 Jul 2020 at 14:22, Ralf Habacker<br>
> <<a href="mailto:ralf.habacker@freenet.de" target="_blank">ralf.habacker@freenet.de</a> <mailto:<a href="mailto:ralf.habacker@freenet.de" target="_blank">ralf.habacker@freenet.de</a>>> wrote:<br>
> <br>
> 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<br>
> for additional<br>
> >> countries?<br>
> >><br>
> >> As pointed out in the initial discussions by Ralf,<br>
> >><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<br>
> generate databases<br>
> >> which should be added to the library.<br>
> >> The scripts contain the link to the respective bank websites<br>
> which as much<br>
> >> I could understand are related to IBANs.<br>
> >><br>
> >> However, it would be helpful to get a confirmation about the<br>
> 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<br>
> 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<br>
> present<br>
> and outdated sqlite databases and the association api (the files<br>
> 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>
> <br>
> There will be only a few modifications required to switch<br>
> from the<br>
> present implementation inside kmymoney to the implementation<br>
> 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<br>
> 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>
> <br>
> which is the source for the sqlite database used by kmymoney for<br>
> 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>
> <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>
> <br>
> it will be possible to implement checks for IBAN's from<br>
> 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<br>
> 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<br>
> specs at<br>
> ><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<br>
> is contained to be usable<br>
> > for your endeavor. Just like with the Dutch version, the only<br>
> 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>
> <br>
> which provides a column SSIC-IID, which is for example 001008<br>
> 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>).<br>
> According to<br>
> the information for switz bank identifier, which is 5!n, that<br>
> should be<br>
> 00100.<br>
> <br>
> <br>
> > One thing I could envision is that you can add a separate<br>
> table with columns like<br>
> ><br>
> > Country - BIC - Name of institution - Valid from - Valid<br>
> until<br>
> ><br>
> > and provide it to applications, so that they can check for<br>
> 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<br>
> 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<br>
> is at that point. The<br>
> > one thing I can say is, that the mentioned information is not<br>
> 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>
> <br>
> it will be possible to implement checks for IBAN's from<br>
> 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<br>
> 5295 7<br>
> SEPA Country Yes<br>
> <br>
> Regards<br>
> Ralf<br>
> <br>
</blockquote></div>