konto_check 6.02.1 → 6.05.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/ext/konto_check_raw/konto_check.c +991 -209
- data/ext/konto_check_raw/konto_check.h +37 -1
- data/ext/konto_check_raw/konto_check_raw_ruby.c +18 -1
- data/ext/konto_check_raw/retvals.h +40 -0
- metadata +3 -3
@@ -1,5 +1,6 @@
|
|
1
1
|
/* vim: ft=c:set si:set fileencoding=iso-8859-1
|
2
2
|
*/
|
3
|
+
#line 9 "konto_check_h.lx"
|
3
4
|
|
4
5
|
/*
|
5
6
|
* ##########################################################################
|
@@ -9,7 +10,7 @@
|
|
9
10
|
* # Verwendung in anderen Programmen bzw. Programmiersprachen benutzt #
|
10
11
|
* # werden. #
|
11
12
|
* # #
|
12
|
-
* # Copyright (C) 2002-
|
13
|
+
* # Copyright (C) 2002-2018 Michael Plugge <m.plugge@hs-mannheim.de> #
|
13
14
|
* # #
|
14
15
|
* # Dieses Programm ist freie Software; Sie d�rfen es unter den #
|
15
16
|
* # Bedingungen der GNU Lesser General Public License, wie von der Free #
|
@@ -286,6 +287,10 @@
|
|
286
287
|
#define LUT2_IBAN_REGEL 25
|
287
288
|
#define LUT2_IBAN_REGEL_SORT 26
|
288
289
|
#define LUT2_BIC_H_SORT 27
|
290
|
+
#define LUT2_SCL_INFO 28
|
291
|
+
#define LUT2_SCL_BIC 29
|
292
|
+
#define LUT2_SCL_NAME 30
|
293
|
+
#define LUT2_SCL_FLAGS 31
|
289
294
|
|
290
295
|
#define LUT2_2_BLZ 101
|
291
296
|
#define LUT2_2_FILIALEN 102
|
@@ -314,6 +319,10 @@
|
|
314
319
|
#define LUT2_2_IBAN_REGEL 125
|
315
320
|
#define LUT2_2_IBAN_REGEL_SORT 126
|
316
321
|
#define LUT2_2_BIC_H_SORT 127
|
322
|
+
#define LUT2_2_SCL_INFO 128
|
323
|
+
#define LUT2_2_SCL_BIC 129
|
324
|
+
#define LUT2_2_SCL_NAME 130
|
325
|
+
#define LUT2_2_SCL_FLAGS 131
|
317
326
|
|
318
327
|
#define LUT2_DEFAULT 501
|
319
328
|
|
@@ -330,6 +339,12 @@ extern const char *lut2_feld_namen[256];
|
|
330
339
|
*/
|
331
340
|
|
332
341
|
#undef FALSE
|
342
|
+
#define NO_SCL_BLOCKS_LOADED -158
|
343
|
+
#define NO_SCL_INFO_BLOCK -157
|
344
|
+
#define SCL_BIC_NOT_FOUND -156
|
345
|
+
#define INVALID_SCL_INFO_BLOCK -155
|
346
|
+
#define NO_SCL_BLOCKS -154
|
347
|
+
#define SCL_INPUT_FORMAT_ERROR -153
|
333
348
|
#define INVALID_REGULAR_EXPRESSION_CNT -152
|
334
349
|
#define INVALID_REGULAR_EXPRESSION -151
|
335
350
|
#define INVALID_HANDLE -150
|
@@ -483,6 +498,9 @@ extern const char *lut2_feld_namen[256];
|
|
483
498
|
#define OK_KTO_REPLACED_NO_PZ 24
|
484
499
|
#define OK_UNTERKONTO_ATTACHED 25
|
485
500
|
#define OK_SHORT_BIC_USED 26
|
501
|
+
#define OK_SCL_EXTENSION_BIC_USED 27
|
502
|
+
#define OK_SCL_WILDCARD_BIC_USED 28
|
503
|
+
#line 279 "konto_check_h.lx"
|
486
504
|
|
487
505
|
#define MAX_BLZ_CNT 30000 /* maximale Anzahl BLZ's in generate_lut() */
|
488
506
|
|
@@ -1090,6 +1108,24 @@ DLL_EXPORT int iban_name_id(char *iban,int filiale,int*retval);
|
|
1090
1108
|
DLL_EXPORT int iban_name_kurz_id(char *iban,int filiale,int*retval);
|
1091
1109
|
DLL_EXPORT int iban_ort_id(char *iban,int filiale,int*retval);
|
1092
1110
|
|
1111
|
+
/* Funktionen f�r das SCL-Verzeichnis */
|
1112
|
+
DLL_EXPORT int lut_scl_init(char *lut_name);
|
1113
|
+
DLL_EXPORT int lut_scl_info(char *lutfile,int *cnt,const char **gueltigkeit,const char **gueltigkeit_iso);
|
1114
|
+
DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile);
|
1115
|
+
DLL_EXPORT int lut_scl_multi(char *bic,const char **scl_flags,const char **used_bic,const char **scl_name);
|
1116
|
+
DLL_EXPORT int lut_scl_multi_blz(char *blz,const char **scl_flags,const char **used_bic,const char **scl_name);
|
1117
|
+
DLL_EXPORT int lut_scl_multi_blz_i(int blz,const char **scl_flags,const char **used_bic,const char **scl_name);
|
1118
|
+
DLL_EXPORT int lut_scl_sct(char *bic,int *retval);
|
1119
|
+
DLL_EXPORT int lut_scl_sdd(char *bic,int *retval);
|
1120
|
+
DLL_EXPORT int lut_scl_cor1(char *bic,int *retval);
|
1121
|
+
DLL_EXPORT int lut_scl_b2b(char *bic,int *retval);
|
1122
|
+
DLL_EXPORT int lut_scl_scc(char *bic,int *retval);
|
1123
|
+
DLL_EXPORT int lut_scl_sct_blz(char *blz,int *retval,const char **used_bic);
|
1124
|
+
DLL_EXPORT int lut_scl_sdd_blz(char *blz,int *retval,const char **used_bic);
|
1125
|
+
DLL_EXPORT int lut_scl_cor1_blz(char *blz,int *retval,const char **used_bic);
|
1126
|
+
DLL_EXPORT int lut_scl_b2b_blz(char *blz,int *retval,const char **used_bic);
|
1127
|
+
DLL_EXPORT int lut_scl_scc_blz(char *blz,int *retval,const char **used_bic);
|
1128
|
+
|
1093
1129
|
/*
|
1094
1130
|
* ######################################################################
|
1095
1131
|
* # globale Variablen #
|
@@ -811,6 +811,7 @@ static VALUE lut_blocks_rb(int argc,VALUE* argv,VALUE self)
|
|
811
811
|
*/
|
812
812
|
static VALUE lut_blocks1_rb(int argc,VALUE* argv,VALUE self)
|
813
813
|
{
|
814
|
+
// rb_scan_args(argc,argv,"0",NULL);
|
814
815
|
return INT2FIX(lut_blocks(0,NULL,NULL,NULL));
|
815
816
|
}
|
816
817
|
|
@@ -4357,7 +4358,7 @@ void Init_konto_check_raw()
|
|
4357
4358
|
*
|
4358
4359
|
* <b>ATTENTION:</b> There are a few important changes in the API between
|
4359
4360
|
* version 0.0.2 (version by Peter Horn/Provideal), version 0.0.6 (jeanmartin)
|
4360
|
-
* and this version (V. 6.
|
4361
|
+
* and this version (V. 6.05 from 2018-09-01):
|
4361
4362
|
*
|
4362
4363
|
* * The function KontoCheck::load_bank_data() is no longer used; it is
|
4363
4364
|
* replaced by KontoCheck::init() and KontoCheck::generate_lutfile().
|
@@ -4539,6 +4540,18 @@ void Init_konto_check_raw()
|
|
4539
4540
|
rb_define_module_function(KontoCheck,"load_bank_data",load_bank_data,1);
|
4540
4541
|
|
4541
4542
|
/* Rückgabewerte der konto_check Bibliothek */
|
4543
|
+
/* (-158) die SCL-Blocks wurden noch nicht eingelesen */
|
4544
|
+
rb_define_const(KontoCheck,"NO_SCL_BLOCKS_LOADED",INT2FIX(NO_SCL_BLOCKS_LOADED));
|
4545
|
+
/* (-157) Der Info-Block des SCL-Verzeichnisses wurde noch nicht eingelesen */
|
4546
|
+
rb_define_const(KontoCheck,"NO_SCL_INFO_BLOCK",INT2FIX(NO_SCL_INFO_BLOCK));
|
4547
|
+
/* (-156) Der BIC wurde im SCL-Verzeichnis nicht gefunden */
|
4548
|
+
rb_define_const(KontoCheck,"SCL_BIC_NOT_FOUND",INT2FIX(SCL_BIC_NOT_FOUND));
|
4549
|
+
/* (-155) Ungültiger SCL-Info-Block in der LUT-Datei */
|
4550
|
+
rb_define_const(KontoCheck,"INVALID_SCL_INFO_BLOCK",INT2FIX(INVALID_SCL_INFO_BLOCK));
|
4551
|
+
/* (-154) Keine SCL-Blocks in der LUT-Datei enthalten */
|
4552
|
+
rb_define_const(KontoCheck,"NO_SCL_BLOCKS",INT2FIX(NO_SCL_BLOCKS));
|
4553
|
+
/* (-153) Ungültige Eingabewerte in der SCL-Datei */
|
4554
|
+
rb_define_const(KontoCheck,"SCL_INPUT_FORMAT_ERROR",INT2FIX(SCL_INPUT_FORMAT_ERROR));
|
4542
4555
|
/* (-152) Ungültiger Zähler in regulärem Ausdruck (innerhalb von {}) */
|
4543
4556
|
rb_define_const(KontoCheck,"INVALID_REGULAR_EXPRESSION_CNT",INT2FIX(INVALID_REGULAR_EXPRESSION_CNT));
|
4544
4557
|
/* (-151) Ungültiger regulärer Ausdruck (enthält zwei Zeichen aus [+?*] nacheinander) */
|
@@ -4845,4 +4858,8 @@ void Init_konto_check_raw()
|
|
4845
4858
|
rb_define_const(KontoCheck,"OK_UNTERKONTO_ATTACHED",INT2FIX(OK_UNTERKONTO_ATTACHED));
|
4846
4859
|
/* (26) ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt */
|
4847
4860
|
rb_define_const(KontoCheck,"OK_SHORT_BIC_USED",INT2FIX(OK_SHORT_BIC_USED));
|
4861
|
+
/* (27) ok, für den BIC wurde die Extension XXX angehängt */
|
4862
|
+
rb_define_const(KontoCheck,"OK_SCL_EXTENSION_BIC_USED",INT2FIX(OK_SCL_EXTENSION_BIC_USED));
|
4863
|
+
/* (28) ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt */
|
4864
|
+
rb_define_const(KontoCheck,"OK_SCL_WILDCARD_BIC_USED",INT2FIX(OK_SCL_WILDCARD_BIC_USED));
|
4848
4865
|
}
|
@@ -48,6 +48,12 @@ DLL_EXPORT const char *kto_check_retval2txt(int retval)
|
|
48
48
|
DLL_EXPORT const char *kto_check_retval2iso(int retval)
|
49
49
|
{
|
50
50
|
switch(retval){
|
51
|
+
case NO_SCL_BLOCKS_LOADED: return "die SCL-Blocks wurden noch nicht eingelesen";
|
52
|
+
case NO_SCL_INFO_BLOCK: return "Der Info-Block des SCL-Verzeichnisses wurde noch nicht eingelesen";
|
53
|
+
case SCL_BIC_NOT_FOUND: return "Der BIC wurde im SCL-Verzeichnis nicht gefunden";
|
54
|
+
case INVALID_SCL_INFO_BLOCK: return "Ung�ltiger SCL-Info-Block in der LUT-Datei";
|
55
|
+
case NO_SCL_BLOCKS: return "Keine SCL-Blocks in der LUT-Datei enthalten";
|
56
|
+
case SCL_INPUT_FORMAT_ERROR: return "Ung�ltige Eingabewerte in der SCL-Datei";
|
51
57
|
case INVALID_REGULAR_EXPRESSION_CNT: return "Ung�ltiger Z�hler in regul�rem Ausdruck (innerhalb von {})";
|
52
58
|
case INVALID_REGULAR_EXPRESSION: return "Ung�ltiger regul�rer Ausdruck (enth�lt zwei Zeichen aus [+?*] nacheinander)";
|
53
59
|
case INVALID_HANDLE: return "Ung�ltiges Handle angegeben";
|
@@ -202,6 +208,8 @@ DLL_EXPORT const char *kto_check_retval2iso(int retval)
|
|
202
208
|
case OK_KTO_REPLACED_NO_PZ: return "ok, die Kontonummer wurde ersetzt, die neue Kontonummer hat keine Pr�fziffer";
|
203
209
|
case OK_UNTERKONTO_ATTACHED: return "ok, es wurde ein (weggelassenes) Unterkonto angef�gt";
|
204
210
|
case OK_SHORT_BIC_USED: return "ok, f�r den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt";
|
211
|
+
case OK_SCL_EXTENSION_BIC_USED: return "ok, f�r den BIC wurde die Extension XXX angeh�ngt";
|
212
|
+
case OK_SCL_WILDCARD_BIC_USED: return "ok, f�r den BIC wurde die Wildcard-Version (8stellig) benutzt";
|
205
213
|
default: return "ung�ltiger R�ckgabewert";
|
206
214
|
}
|
207
215
|
}
|
@@ -218,6 +226,12 @@ DLL_EXPORT const char *kto_check_retval2iso(int retval)
|
|
218
226
|
DLL_EXPORT const char *kto_check_retval2dos(int retval)
|
219
227
|
{
|
220
228
|
switch(retval){
|
229
|
+
case NO_SCL_BLOCKS_LOADED: return "die SCL-Blocks wurden noch nicht eingelesen";
|
230
|
+
case NO_SCL_INFO_BLOCK: return "Der Info-Block des SCL-Verzeichnisses wurde noch nicht eingelesen";
|
231
|
+
case SCL_BIC_NOT_FOUND: return "Der BIC wurde im SCL-Verzeichnis nicht gefunden";
|
232
|
+
case INVALID_SCL_INFO_BLOCK: return "Ung�ltiger SCL-Info-Block in der LUT-Datei";
|
233
|
+
case NO_SCL_BLOCKS: return "Keine SCL-Blocks in der LUT-Datei enthalten";
|
234
|
+
case SCL_INPUT_FORMAT_ERROR: return "Ung�ltige Eingabewerte in der SCL-Datei";
|
221
235
|
case INVALID_REGULAR_EXPRESSION_CNT: return "Ung�ltiger Z� hler in regul� rem Ausdruck (innerhalb von {})";
|
222
236
|
case INVALID_REGULAR_EXPRESSION: return "Ung�ltiger regul� rer Ausdruck (enth� lt zwei Zeichen aus [+?*] nacheinander)";
|
223
237
|
case INVALID_HANDLE: return "Ung�ltiges Handle angegeben";
|
@@ -372,6 +386,8 @@ DLL_EXPORT const char *kto_check_retval2dos(int retval)
|
|
372
386
|
case OK_KTO_REPLACED_NO_PZ: return "ok, die Kontonummer wurde ersetzt, die neue Kontonummer hat keine Pr�fziffer";
|
373
387
|
case OK_UNTERKONTO_ATTACHED: return "ok, es wurde ein (weggelassenes) Unterkonto angef�gt";
|
374
388
|
case OK_SHORT_BIC_USED: return "ok, f�r den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt";
|
389
|
+
case OK_SCL_EXTENSION_BIC_USED: return "ok, f�r den BIC wurde die Extension XXX angeh� ngt";
|
390
|
+
case OK_SCL_WILDCARD_BIC_USED: return "ok, f�r den BIC wurde die Wildcard-Version (8stellig) benutzt";
|
375
391
|
default: return "ung�ltiger R�ckgabewert";
|
376
392
|
}
|
377
393
|
}
|
@@ -388,6 +404,12 @@ DLL_EXPORT const char *kto_check_retval2dos(int retval)
|
|
388
404
|
DLL_EXPORT const char *kto_check_retval2html(int retval)
|
389
405
|
{
|
390
406
|
switch(retval){
|
407
|
+
case NO_SCL_BLOCKS_LOADED: return "die SCL-Blocks wurden noch nicht eingelesen";
|
408
|
+
case NO_SCL_INFO_BLOCK: return "Der Info-Block des SCL-Verzeichnisses wurde noch nicht eingelesen";
|
409
|
+
case SCL_BIC_NOT_FOUND: return "Der BIC wurde im SCL-Verzeichnis nicht gefunden";
|
410
|
+
case INVALID_SCL_INFO_BLOCK: return "Ungültiger SCL-Info-Block in der LUT-Datei";
|
411
|
+
case NO_SCL_BLOCKS: return "Keine SCL-Blocks in der LUT-Datei enthalten";
|
412
|
+
case SCL_INPUT_FORMAT_ERROR: return "Ungültige Eingabewerte in der SCL-Datei";
|
391
413
|
case INVALID_REGULAR_EXPRESSION_CNT: return "Ungültiger Zähler in regulärem Ausdruck (innerhalb von {})";
|
392
414
|
case INVALID_REGULAR_EXPRESSION: return "Ungültiger regulärer Ausdruck (enthält zwei Zeichen aus [+?*] nacheinander)";
|
393
415
|
case INVALID_HANDLE: return "Ungültiges Handle angegeben";
|
@@ -542,6 +564,8 @@ DLL_EXPORT const char *kto_check_retval2html(int retval)
|
|
542
564
|
case OK_KTO_REPLACED_NO_PZ: return "ok, die Kontonummer wurde ersetzt, die neue Kontonummer hat keine Prüfziffer";
|
543
565
|
case OK_UNTERKONTO_ATTACHED: return "ok, es wurde ein (weggelassenes) Unterkonto angefügt";
|
544
566
|
case OK_SHORT_BIC_USED: return "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt";
|
567
|
+
case OK_SCL_EXTENSION_BIC_USED: return "ok, für den BIC wurde die Extension XXX angehängt";
|
568
|
+
case OK_SCL_WILDCARD_BIC_USED: return "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt";
|
545
569
|
default: return "ungültiger Rückgabewert";
|
546
570
|
}
|
547
571
|
}
|
@@ -558,6 +582,12 @@ DLL_EXPORT const char *kto_check_retval2html(int retval)
|
|
558
582
|
DLL_EXPORT const char *kto_check_retval2utf8(int retval)
|
559
583
|
{
|
560
584
|
switch(retval){
|
585
|
+
case NO_SCL_BLOCKS_LOADED: return "die SCL-Blocks wurden noch nicht eingelesen";
|
586
|
+
case NO_SCL_INFO_BLOCK: return "Der Info-Block des SCL-Verzeichnisses wurde noch nicht eingelesen";
|
587
|
+
case SCL_BIC_NOT_FOUND: return "Der BIC wurde im SCL-Verzeichnis nicht gefunden";
|
588
|
+
case INVALID_SCL_INFO_BLOCK: return "Ungültiger SCL-Info-Block in der LUT-Datei";
|
589
|
+
case NO_SCL_BLOCKS: return "Keine SCL-Blocks in der LUT-Datei enthalten";
|
590
|
+
case SCL_INPUT_FORMAT_ERROR: return "Ungültige Eingabewerte in der SCL-Datei";
|
561
591
|
case INVALID_REGULAR_EXPRESSION_CNT: return "Ungültiger Zähler in regulärem Ausdruck (innerhalb von {})";
|
562
592
|
case INVALID_REGULAR_EXPRESSION: return "Ungültiger regulärer Ausdruck (enthält zwei Zeichen aus [+?*] nacheinander)";
|
563
593
|
case INVALID_HANDLE: return "Ungültiges Handle angegeben";
|
@@ -712,6 +742,8 @@ DLL_EXPORT const char *kto_check_retval2utf8(int retval)
|
|
712
742
|
case OK_KTO_REPLACED_NO_PZ: return "ok, die Kontonummer wurde ersetzt, die neue Kontonummer hat keine Prüfziffer";
|
713
743
|
case OK_UNTERKONTO_ATTACHED: return "ok, es wurde ein (weggelassenes) Unterkonto angefügt";
|
714
744
|
case OK_SHORT_BIC_USED: return "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt";
|
745
|
+
case OK_SCL_EXTENSION_BIC_USED: return "ok, für den BIC wurde die Extension XXX angehängt";
|
746
|
+
case OK_SCL_WILDCARD_BIC_USED: return "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt";
|
715
747
|
default: return "ungültiger Rückgabewert";
|
716
748
|
}
|
717
749
|
}
|
@@ -728,6 +760,12 @@ DLL_EXPORT const char *kto_check_retval2utf8(int retval)
|
|
728
760
|
DLL_EXPORT const char *kto_check_retval2txt_short(int retval)
|
729
761
|
{
|
730
762
|
switch(retval){
|
763
|
+
case NO_SCL_BLOCKS_LOADED: return "NO_SCL_BLOCKS_LOADED";
|
764
|
+
case NO_SCL_INFO_BLOCK: return "NO_SCL_INFO_BLOCK";
|
765
|
+
case SCL_BIC_NOT_FOUND: return "SCL_BIC_NOT_FOUND";
|
766
|
+
case INVALID_SCL_INFO_BLOCK: return "INVALID_SCL_INFO_BLOCK";
|
767
|
+
case NO_SCL_BLOCKS: return "NO_SCL_BLOCKS";
|
768
|
+
case SCL_INPUT_FORMAT_ERROR: return "SCL_INPUT_FORMAT_ERROR";
|
731
769
|
case INVALID_REGULAR_EXPRESSION_CNT: return "INVALID_REGULAR_EXPRESSION_CNT";
|
732
770
|
case INVALID_REGULAR_EXPRESSION: return "INVALID_REGULAR_EXPRESSION";
|
733
771
|
case INVALID_HANDLE: return "INVALID_HANDLE";
|
@@ -882,6 +920,8 @@ DLL_EXPORT const char *kto_check_retval2txt_short(int retval)
|
|
882
920
|
case OK_KTO_REPLACED_NO_PZ: return "OK_KTO_REPLACED_NO_PZ";
|
883
921
|
case OK_UNTERKONTO_ATTACHED: return "OK_UNTERKONTO_ATTACHED";
|
884
922
|
case OK_SHORT_BIC_USED: return "OK_SHORT_BIC_USED";
|
923
|
+
case OK_SCL_EXTENSION_BIC_USED: return "OK_SCL_EXTENSION_BIC_USED";
|
924
|
+
case OK_SCL_WILDCARD_BIC_USED: return "OK_SCL_WILDCARD_BIC_USED";
|
885
925
|
default: return "UNDEFINED_RETVAL";
|
886
926
|
}
|
887
927
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: konto_check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.05.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Provideal Systems GmbH
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-09-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: thoughtbot-shoulda
|
@@ -66,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
66
|
version: '0'
|
67
67
|
requirements: []
|
68
68
|
rubyforge_project:
|
69
|
-
rubygems_version: 2.
|
69
|
+
rubygems_version: 2.7.6
|
70
70
|
signing_key:
|
71
71
|
specification_version: 4
|
72
72
|
summary: Checking german BICs/Bank account numbers and IBANs, generate IBANs, retrieve
|