Skip to content

Commit

Permalink
Add data valid from 2023-09-04
Browse files Browse the repository at this point in the history
  • Loading branch information
baumerdev committed Aug 23, 2023
1 parent 8656f7b commit f750e83
Show file tree
Hide file tree
Showing 7 changed files with 77 additions and 70 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## 2023-08-23 [v1.2302.0]

* Additionally includes data valid from 2023-09-04, removes data valid before 2023-06-05

## 2023-05-14 [v1.2301.0]

* Additionally includes data valid from 2023-06-05, removes data valid before 2023-03-06
Expand Down
81 changes: 42 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
![CI: Lint, test and build](https://github.com/baumerdev/bankdata-germany/workflows/Lint,%20test%20and%20build/badge.svg?branch=main)
[![Coverage Status](https://coveralls.io/repos/github/baumerdev/bankdata-germany/badge.svg?branch=main)](https://coveralls.io/github/baumerdev/bankdata-germany?branch=main)

This TypeScript/JavaScript library contains bank data for German banks like
names and BIC/Swift Codes. You can use it e.g to enhance
user-interfaces/forms where a user enters an IBAN and you automatically fill
out the bank-name and BIC fields.
This TypeScript/JavaScript library contains bank data for German banks, such
as names and BIC/SWIFT codes. You can use it (for example) to enhance user
interfaces/forms, where a user enters an IBAN and you automatically fill out
the bank name and BIC fields.

This library is not a validator for IBAN itself. So if you need validation
take a look at the main project [IBANTools-Germany](https://baumerdev.github.io/ibantools-germany/).
This library is not an IBAN validator itself. If you require validation,
please refer to the main project. [IBANTools-Germany](https://baumerdev.github.io/ibantools-germany/).

> _Version 1.2301.* includes the data from 2023-03-06 until 2023-06-04 and from 2023-06-05 until 2023-09-03 and validation will be performed according to the data that is valid at your system time (data will change at 2023-06-05 midnight CET)._
> _Version 1.2302.* includes data from 2023-06-05 to 2023-09-03, as well as from 2023-09-04 to 2023-12-03. Validation will be based on the data that is valid according to your system time (data changes at midnight CET on 2023-09-04)._
* [Installation](#installation)
* [Usage](#usage)
Expand All @@ -22,8 +22,8 @@ take a look at the main project [IBANTools-Germany](https://baumerdev.github.io/

### Package Manager

Add it to your project with your package manager like npm or yarn. You should
explicitly install the latest version since the bank data may change multiple
Add it to your project using a package manager like npm or yarn. You should
explicitly install the latest version, as the bank data may change multiple
times a year.

```sh
Expand All @@ -34,24 +34,25 @@ $ yarn add bankdata-germany@latest

### Browser / CDN

If you just want the functions in your browser, you can include the following
pre-build file.
If you only want the functions in your browser, you can include the following
pre-built file.

```html
<script src="https://cdn.jsdelivr.net/npm/bankdata-germany/dist/build/browser.js"></script>
```

## Usage

The npm package contains the code for ESM and CJS, so instead of `import`, as
shown in the usage examples below, you can use `require` as well.
The npm package contains the code for both ESM and CJS. Therefore, in addition
to using `import` as shown in the usage examples below, you can also utilize
`require`.

### IBAN / Bank Details

You can get detailed information for a bank by BLZ, BBAN or IBAN.
You can retrieve detailed information for a bank using BLZ, BBAN, or IBAN.

Note: If you use the BBAN/IBAN function no verification takes place. It just
extracts the BLZ and checks if it exists.
Note: When using the BBAN/IBAN function, no verification will be performed. It
solely extracts the BLZ and verifies its existence.

```javascript
import { bankDataByBLZ, bankDataByBBAN, bankDataByIBAN } from "bankdata-germany"
Expand All @@ -68,9 +69,9 @@ bankDataByIBAN("DE48100100100000138301");

### Validation

You can validate BIC/Swift Codes. But even if those formats are international
standards this library only validates data for Germany and will return false
for all other countries.
You can validate BIC/SWIFT codes. However, despite these formats being
international standards, this library exclusively validates data for Germany
and will return "false" for all other countries.

```javascript
import { isValidBIC } from "bankdata-germany"
Expand All @@ -83,8 +84,8 @@ isValidBIC("BNPAFRPH"); // false (corrent but not a German BIC)

### Browser / CDN

If you use the pre-build version, an object `bankdataGermany` is globally
defined on `window` containing the functions.
When using the pre-built version, the `bankdataGermany` object is globally
defined on the `window`, containing the functions.

```javascript
bankdataGermany.bankDataByBLZ("10010010");
Expand All @@ -95,33 +96,35 @@ bankdataGermany.isValidBIC("MARKDEFF");

## Data Source

Bank data is taken from the official website of
Bank data is sourced from the official website of
[Deutsche Bundesbank](https://www.bundesbank.de/en/tasks/payment-systems/services/bank-sort-codes/download-bank-sort-codes-626218)
who publishes updated data every quarter.
which publishes updated data every quarter.

These updates can contain technical changes (modifications in check digit
methods) and content changes (BLZ, bank names, etc). It is possible that there
are updates that do not contain any relevant changes for this library at all.
These updates can encompass both technical changes, such as modifications in
check digit methods, as well as content changes like alterations to BLZ, bank
names, and more. Some updates might not contain any relevant changes for this
library at all.

## Package Version

The version numbers are based on [Semantic Versioning](https://semver.org/)
with modifications.
with some modifications.

> 1.2205.3
The first number representes the Major version. If this number increases there
are updates that may not be backward compatiple and you have to adjust your
code. That means the above version string is from major version **1**.
The first number represents the Major version. If this number increases, there
may be updates that are not backward compatible, requiring adjustments to your
code. In the above version string, the major version is **1**.

The first two digits of the second number stand for the year of the included
data and check digit methods. The third and fourth digit increase when there
are either minor version changes that are backward compatible or when new data
is included. That means the above version string is from year 20**22** and
has had a few minor updates, perhaps data updates for spring and summer.
The first two digits of the second number indicate the year of the included data
and check digit methods. The third and fourth digits increase either with minor
version changes that maintain backward compatibility or when new data is
included. In the provided version string, the year is 20**22**, with a few minor
updates, possibly including data updates for spring and summer.

The last number is for patches and bug fixes.
The last number is reserved for patches and bug fixes.

Since the data may change up to four times a year you should use a suitable
version string in your package.json. Since there will be only breaking changes
when the first number changes, you should be good with e.g. `"1.x"`
Considering that the data could change up to four times a year, it's advisable
to use an appropriate version string in your package.json. As breaking changes
occur only when the first number changes, specifying something like `"1.x"`
should suffice.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bankdata-germany",
"version": "1.2301.0",
"version": "1.2302.0",
"description": "Data and BIC Validator for German Banks",
"author": "Markus Baumer <[email protected]>",
"repository": "https://github.com/baumerdev/bankdata-germany",
Expand Down
52 changes: 26 additions & 26 deletions src/__tests__/lib/data.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,39 +211,39 @@ describe("bankDataByIBAN", () => {
});
});

describe("Change 2023-06-05", () => {
test("BLZ 50026600 is unknown before valid-from date", () => {
expect(bankDataByBLZ("50026600", new Date(0))).toEqual(null);
});
test("BLZ 50026600 has data at valid-from date", () => {
expect(bankDataByBLZ("50026600", new Date(nextValidDate))).toEqual({
bankName: "UNLIMINT EU Zweigniederlassung Deutschland",
bic: "CARDDEFFXXX",
blz: "50026600",
describe("Change 2023-09-04", () => {
test("BLZ 10010178 is unknown before valid-from date", () => {
expect(bankDataByBLZ("10010178", new Date(0))).toEqual(null);
});
test("BLZ 10010178 has data at valid-from date", () => {
expect(bankDataByBLZ("10010178", new Date(nextValidDate))).toEqual({
bankName: "Revolut Bank, Zweigniederlassung Deutschland",
bic: "REVODEB2XXX",
blz: "10010178",
});
});
test("BLZ 24161594 has data before valid-from date", () => {
expect(bankDataByBLZ("24161594", new Date(0))).toEqual({
bankName: "Zevener Volksbank",
bic: "GENODEF1SIT",
blz: "24161594",
test("BLZ 26991066 has data before valid-from date", () => {
expect(bankDataByBLZ("26991066", new Date(0))).toEqual({
bankName: "Volksbank Braunschweig Wolfsburg",
bic: "GENODEF1WOB",
blz: "26991066",
});
});
test("BLZ 24161594 has new data at valid-from date", () => {
expect(bankDataByBLZ("24161594", new Date(nextValidDate))).toEqual({
bankName: "Zevener Volksbank -alt-",
bic: "GENODEF1SIT",
blz: "24161594",
test("BLZ 26991066 has new data at valid-from date", () => {
expect(bankDataByBLZ("26991066", new Date(nextValidDate))).toEqual({
bankName: "Volksbank BRAWO",
bic: "GENODEF1WOB",
blz: "26991066",
});
});
test("BLZ 20090500 has data before valid-from date", () => {
expect(bankDataByBLZ("20090500", new Date(0))).toEqual({
bankName: "Augsburger Aktienbank (netbank)",
bic: "AUGBDE71NET",
blz: "20090500",
test("BLZ 10050005 has data before valid-from date", () => {
expect(bankDataByBLZ("10050005", new Date(0))).toEqual({
bankName: "Landesbank Berlin - E 1 -",
bic: undefined,
blz: "10050005",
});
});
test("BLZ 20090500 is unknown at valid-from date", () => {
expect(bankDataByBLZ("20090500", new Date(nextValidDate))).toEqual(null);
test("BLZ 10050005 is unknown at valid-from date", () => {
expect(bankDataByBLZ("10050005", new Date(nextValidDate))).toEqual(null);
});
});
2 changes: 1 addition & 1 deletion src/data/current.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/data/next.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"remove":["20090500","26051450","54290000","70011100","70011110","70011300","72020700","76069598"],"upsert":{"24161594":["Zevener Volksbank -alt-","GENODEF1SIT"],"29265747":["Volksbank im Elbe-Weser-Dreieck","GENODEF1BEV"],"37551020":["Stadt-Sparkasse Leichlingen -alt-","WELADED1LEI"],"38051290":["Stadtsparkasse Bad Honnef -alt-","WELADED1HON"],"38650000":["Kreissparkasse Siegburg -alt-","WELADED1SGB"],"38651390":["Sparkasse Hennef -alt-","WELADED1HEN"],"47251550":["Sparkasse Höxter -alt-","WELADED1HXB"],"47251740":["Stadtsparkasse Delbrück -alt-","WELADED1DEL"],"47261603":["Volksbank Brilon-Büren-Salzkotten -alt-","GENODEM1BUS"],"47650130":["Sparkasse Paderborn-Detmold-Höxter","WELADE3LXXX"],"48020151":["Hauck Aufhäuser Lampe Privatbank","HAUKDEFFXXX"],"50026600":["UNLIMINT EU Zweigniederlassung Deutschland","CARDDEFFXXX"],"50110801":["J.P. Morgan","CHASDEFXVR1"],"70010588":["Deutsche Pfandbriefbank","REBMDEMMSCA"]},"valid":"2023-06-05T00:00:00+0200"}
{"remove":["10050005","10050006","10050007","10050008","50020000","58668818","74092400"],"upsert":{"10010178":["Revolut Bank, Zweigniederlassung Deutschland","REVODEB2XXX"],"26991066":["Volksbank BRAWO","GENODEF1WOB"],"28062560":["Volksbank Lohne-Dinklage-Steinfeld-Mühlen","GENODEF1LON"],"28065108":["VR-Bank Dinklage-Steinfeld -alt-","GENODEF1DIK"],"28066214":["Volksbank Oldenburg-Land Delmenhorst","GENODEF1WDH"],"28067170":["Volksbank Delmenhorst Schierbrok -alt-","GENODEF1GSC"],"30030880":["HSBC Continental Europe, Germany","TUBDDEDDXXX"],"30030889":["HSBC Continental Europe, Germany","TUBDDEDDXXX"],"30130100":["DHB Bank, Niederlassung Deutschland","DHBNDEDDXXX"],"34051350":["Sparkasse Radevormwald-Hückeswagen -alt-","WELADED1RVW"],"37069639":["Rosbacher Raiffeisenbank -alt-","GENODED1WND"],"40090900":["VR Bank Westfalen-Lippe","GENODEF1P15"],"40154006":["Sparkasse Gronau -alt-","WELADED1GRO"],"40154702":["Stadtsparkasse Stadtlohn -alt-","WELADED1STL"],"41462295":["Volksbank Wickede (Ruhr) -alt-","GENODEM1WRU"],"49262364":["Volksbank Schnathorst -alt-","GENODEM1SNA"],"50961206":["VR Bank Ried-Überwald, Bürstadt","GENODE51RBU"],"50961685":["Volksbank Überwald-Gorxheimertal -alt-","GENODE51ABT"],"52051373":["Stadtsparkasse Borken (Hessen) -alt-","HELADEF1BOR"],"52053458":["Sparkasse Borken-Schwalmstadt","HELADEF1SWA"],"57069081":["Raiffeisenbank Moselkrampen -alt-","GENODED1MOK"],"57069806":["VR-Bank Hunsrück-Mosel -alt-","GENODED1MBA"],"57460117":["VR Bank Rhein-Mosel -alt-","GENODED1NWD"],"57761591":["VR Bank RheinAhrEifel","GENODED1BNA"],"58761343":["Raiffeisenbank Zeller Land -alt-","GENODED1BPU"],"61261339":["VR Bank Hohenneuffen-Teck -alt-","GENODES1HON"],"66391200":["Volksbank Bruchsal-Bretten -alt-","GENODE61BTT"],"67460041":["Volksbank Mosbach -alt-","GENODE61MOS"],"73450000":["Kreis- und Stadtsparkasse Kaufbeuren -alt-","BYLADEM1KFB"],"74061101":["Raiffeisenbank Goldener Steig - Dreisessel","GENODEF1RGS"],"74062490":["VR-Bank Vilshofen-Pocking","GENODEF1VIR"],"74067000":["Rottaler Raiffeisenbank -alt-","GENODEF1POC"],"74069768":["Raiffeisenbank am Dreisessel -alt-","GENODEF1NHD"],"75363189":["Raiffeisenbank Neustadt-Vohenstrauß -alt-","GENODEF1NEW"],"76069468":["Raiffeisenbank Weißenburg-Gunzenhausen -alt-","GENODEF1GU1"],"76069663":["Raiffeisenbank Heilsbronn-Windsbach -alt-","GENODEF1WBA"],"76591000":["VR Bank im südlichen Franken","GENODEF1DKV"],"77069052":["Raiffeisenbank Heroldsbach -alt-","GENODEF1HOB"]},"valid":"2023-09-04T00:00:00+0200"}

0 comments on commit f750e83

Please sign in to comment.