|
15 | 15 | <a href='https://coveralls.io/github/eCollect/node-ebics-client?branch=master' title="Coverage Status"><img src='https://coveralls.io/repos/github/eCollect/node-ebics-client/badge.svg?branch=master' alt='Coverage Status' /></a> |
16 | 16 | </p> |
17 | 17 |
|
18 | | -Pure node.js ( >=8 ) implementation of [EBICS](https://en.wikipedia.org/wiki/Electronic_Banking_Internet_Communication_Standard) ( Electronic Banking Internet Communication ). |
| 18 | +Pure Node.js (>= 16) implementation of [EBICS](https://en.wikipedia.org/wiki/Electronic_Banking_Internet_Communication_Standard) (Electronic Banking Internet Communication). |
19 | 19 |
|
20 | | -The client is aimed to be 100% [ISO 20022](https://www.iso20022.org) compliant, and supports the complete initializations process ( INI, HIA, HPB orders ) and HTML letter generation. |
| 20 | +The client is aimed to be 100% [ISO 20022](https://www.iso20022.org) compliant, and supports the complete initializations process (INI, HIA, HPB orders) and HTML letter generation. |
21 | 21 |
|
| 22 | +## Usage |
| 23 | + |
| 24 | +For examples on how to use this library, take a look at the [examples](https://github.com/node-ebics/node-ebics-client/tree/master/examples). |
| 25 | + |
| 26 | +### A note on recent Node.js versions |
| 27 | + |
| 28 | +The latest Node.js versions don't support `RSA_PKCS1_PADDING` for private decryption for security reasons, throwing an error like _TypeError: RSA_PKCS1_PADDING is no longer supported for private decryption, this can be reverted with --security-revert=CVE-2023-46809_. |
| 29 | + |
| 30 | +EBICS requires this mode, so in order for this library to work, add the following parameter when starting Node.js: `--security-revert=CVE-2023-46809` |
| 31 | + |
| 32 | +### Initialization |
| 33 | + |
| 34 | +1. Create a configuration (see [example configs](https://github.com/node-ebics/node-ebics-client/tree/master/examples/config)) with the EBICS credentials you received from your bank and name it in this schema: `config.<environment>.<bank>[.<entity>].json` (the entity is optional). |
| 35 | + |
| 36 | + - The fields `url`, `partnerId`, `userId`, `hostId` are provided by your bank. |
| 37 | + - The `passphrase` is used to encrypt the keys file, which will be stored at the `storageLocation`. |
| 38 | + - The `bankName` and `bankShortName` are used internally for creating files and identifying the bank to you. |
| 39 | + - The `languageCode` is used when creating the Initialization Letter and can be either `de`, `en`, or `fr`. |
| 40 | + - You can chose any environment, bank and, optionally, entity name. Entities are useful if you have multiple EBICS users for the same bank account. |
| 41 | + |
| 42 | +2. Run `node examples/initialize.js <environment> <bank> [entity]` to generate your key pair and perform the INI and HIA orders (ie. send the public keys to your bank) |
| 43 | + The generated keys are stored in the file specified in your config and encrypted with the specified passphrase. |
| 44 | +3. Run `node examples/bankLetter.js <environment> <bank> [entity]` to generate the Initialization Letter |
| 45 | +4. Print the letter, sign it and send it to your bank. Wait for them to activate your EBICS account. |
| 46 | +5. Download the bank keys by running `node examples/save-bank-keys.js <environment> <bank> [entity]` |
| 47 | + |
| 48 | +If all these steps were executed successfully, you can now do all things EBICS, like fetching bank statements by running `node examples/send-sta-order.js <environment> <bank> [entity]`, or actually use this library in your custom banking applications. |
22 | 49 |
|
23 | 50 | ## Supported Banks |
24 | | -The client is currently tested and verified to work with the following banks: |
25 | 51 |
|
26 | | -* [Credit Suisse (Schweiz) AG](https://www.credit-suisse.com/ch/en.html) |
27 | | -* [Zürcher Kantonalbank](https://www.zkb.ch/en/lg/ew.html) |
28 | | -* [Raiffeisen Schweiz](https://www.raiffeisen.ch/rch/de.html) |
29 | | -* [BW Bank](https://www.bw-bank.de/de/home.html) |
30 | | -* [Bank GPB International S.A.](https://gazprombank.lu/e-banking) |
31 | | -* [Bank GPB AO](https://gazprombank.ru/) |
32 | | -* [J.P. Morgan](https://www.jpmorgan.com/) |
| 52 | +The client is currently tested and verified to work with the following banks: |
33 | 53 |
|
| 54 | +- [Credit Suisse (Schweiz) AG](https://www.credit-suisse.com/ch/en.html) |
| 55 | +- [Zürcher Kantonalbank](https://www.zkb.ch/en/lg/ew.html) |
| 56 | +- [Raiffeisen Schweiz](https://www.raiffeisen.ch/rch/de.html) |
| 57 | +- [BW Bank](https://www.bw-bank.de/de/home.html) |
| 58 | +- [Bank GPB International S.A.](https://gazprombank.lu/e-banking) |
| 59 | +- [Bank GPB AO](https://gazprombank.ru/) |
| 60 | +- [J.P. Morgan](https://www.jpmorgan.com/) |
34 | 61 |
|
35 | 62 | ## Inspiration |
36 | 63 |
|
37 | 64 | The basic concept of this library was inspired by the [EPICS](https://github.com/railslove/epics) library from the Railslove Team. |
38 | 65 |
|
39 | | - |
40 | 66 | ## Copyright |
41 | 67 |
|
42 | 68 | Copyright: Dimitar Nanov, 2019-2022. |
43 | 69 | Licensed under the [MIT](LICENSE) license. |
44 | | - |
|
0 commit comments