{"id":50646602,"url":"https://github.com/node-ebics/node-ebics-client","last_synced_at":"2026-07-12T14:00:42.674Z","repository":{"id":39897970,"uuid":"133825064","full_name":"node-ebics/node-ebics-client","owner":"node-ebics","description":"Node.js EBICS Client - compliant with ISO 20022","archived":false,"fork":false,"pushed_at":"2025-04-02T23:35:22.000Z","size":529,"stargazers_count":79,"open_issues_count":19,"forks_count":35,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-10-23T22:49:36.098Z","etag":null,"topics":["accounting","bank","ebics","iso20022","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/node-ebics.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-05-17T14:26:41.000Z","updated_at":"2025-08-12T13:35:36.000Z","dependencies_parsed_at":"2024-04-30T01:27:08.663Z","dependency_job_id":"9cff6909-3380-4c72-959e-a956f347f4c3","html_url":"https://github.com/node-ebics/node-ebics-client","commit_stats":{"total_commits":181,"total_committers":15,"mean_commits":"12.066666666666666","dds":0.4640883977900553,"last_synced_commit":"66bf57f0dc1563f277e8e458e3b0fd2c72741da9"},"previous_names":["ecollect/node-ebics-client"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/node-ebics/node-ebics-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-ebics%2Fnode-ebics-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-ebics%2Fnode-ebics-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-ebics%2Fnode-ebics-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-ebics%2Fnode-ebics-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/node-ebics","download_url":"https://codeload.github.com/node-ebics/node-ebics-client/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-ebics%2Fnode-ebics-client/sbom","scorecard":{"id":365557,"data":{"date":"2025-08-11","repo":{"name":"github.com/node-ebics/node-ebics-client","commit":"4a09c8e260a7e61b4bebea9f9df9e52e658dcb6e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/CI.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":1,"reason":"Found 2/12 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/node-ebics/node-ebics-client/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/node-ebics/node-ebics-client/CI.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 23 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T11:46:37.425Z","repository_id":39897970,"created_at":"2025-08-18T11:46:37.425Z","updated_at":"2025-08-18T11:46:37.425Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35393398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-12T02:00:06.386Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accounting","bank","ebics","iso20022","nodejs"],"created_at":"2026-06-07T13:00:30.181Z","updated_at":"2026-07-12T14:00:42.669Z","avatar_url":"https://github.com/node-ebics.png","language":"JavaScript","funding_links":[],"categories":["Payments and Banking"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"assets/logo.png\" width=\"300px\" height=\"auto\"/\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003enode-ebics-client\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://travis-ci.org/node-ebics/node-ebics-client\" title=\"Build Status\"\u003e\u003cimg src=\"https://travis-ci.org/node-ebics/node-ebics-client.svg?branch=master\" alt=\"Build Status\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/package/ebics-client\" title=\"Build Status\"\u003e\n\u003cimg alt=\"ebics-client\" src=\"https://img.shields.io/npm/v/ebics-client\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://snyk.io/test/github/ecollect/node-ebics-client\" title=\"Known Vulnerabilities\"\u003e\n\u003cimg src=\"https://snyk.io/test/github/ecollect/node-ebics-client/badge.svg\" alt=\"Known Vulnerabilities\"\u003e\n\u003c/a\u003e\n\u003ca href=\"/eCollect/node-ebics-client/blob/master/LICENSE\" title=\"GPL-3.0\"\u003e\u003cimg alt=\"GPL-3.0\" src=\"https://img.shields.io/github/license/eCollect/node-ebics-client\"\u003e\u003c/a\u003e\n\u003ca href='https://coveralls.io/github/eCollect/node-ebics-client?branch=master' title=\"Coverage Status\"\u003e\u003cimg src='https://coveralls.io/repos/github/eCollect/node-ebics-client/badge.svg?branch=master' alt='Coverage Status' /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nPure Node.js (\u003e= 16) implementation of [EBICS](https://en.wikipedia.org/wiki/Electronic_Banking_Internet_Communication_Standard) (Electronic Banking Internet Communication).\n\nThe 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.\n\n## Usage\n\nFor examples on how to use this library, take a look at the [examples](https://github.com/node-ebics/node-ebics-client/tree/master/examples).\n\n### A note on recent Node.js versions\n\nThe 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_.\n\nEBICS requires this mode, so in order for this library to work, add the following parameter when starting Node.js: `--security-revert=CVE-2023-46809`\n\n### Initialization\n\n1. 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.\u003cenvironment\u003e.\u003cbank\u003e[.\u003centity\u003e].json` (the entity is optional).\n\n    - The fields `url`, `partnerId`, `userId`, `hostId` are provided by your bank.\n    - The `passphrase` is used to encrypt the keys file, which will be stored at the `storageLocation`.\n    - The `bankName` and `bankShortName` are used internally for creating files and identifying the bank to you.\n    - The `languageCode` is used when creating the Initialization Letter and can be either `de`, `en`, or `fr`.\n    - You can chose any environment, bank and, optionally, entity name. Entities are useful if you have multiple EBICS users for the same bank account.\n\n2. Run `node examples/initialize.js \u003cenvironment\u003e \u003cbank\u003e [entity]` to generate your key pair and perform the INI and HIA orders (ie. send the public keys to your bank)  \n   The generated keys are stored in the file specified in your config and encrypted with the specified passphrase.\n3. Run `node examples/bankLetter.js \u003cenvironment\u003e \u003cbank\u003e [entity]` to generate the Initialization Letter\n4. Print the letter, sign it and send it to your bank. Wait for them to activate your EBICS account.\n5. Download the bank keys by running `node examples/save-bank-keys.js \u003cenvironment\u003e \u003cbank\u003e [entity]`\n\nIf 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 \u003cenvironment\u003e \u003cbank\u003e [entity]`, or actually use this library in your custom banking applications.\n\n## Supported Banks\n\nThe client is currently tested and verified to work with the following banks:\n\n-   [Credit Suisse (Schweiz) AG](https://www.credit-suisse.com/ch/en.html)\n-   [Zürcher Kantonalbank](https://www.zkb.ch/en/lg/ew.html)\n-   [Raiffeisen Schweiz](https://www.raiffeisen.ch/rch/de.html)\n-   [BW Bank](https://www.bw-bank.de/de/home.html)\n-   [Bank GPB International S.A.](https://gazprombank.lu/e-banking)\n-   [Bank GPB AO](https://gazprombank.ru/)\n-   [J.P. Morgan](https://www.jpmorgan.com/)\n\n## Inspiration\n\nThe basic concept of this library was inspired by the [EPICS](https://github.com/railslove/epics) library from the Railslove Team.\n\n## Copyright\n\nCopyright: Dimitar Nanov, 2019-2022.  \nLicensed under the [MIT](LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnode-ebics%2Fnode-ebics-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnode-ebics%2Fnode-ebics-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnode-ebics%2Fnode-ebics-client/lists"}