{"id":30733831,"url":"https://github.com/ebics-api/ebics-client-php","last_synced_at":"2025-09-03T18:53:11.980Z","repository":{"id":37978678,"uuid":"197830459","full_name":"ebics-api/ebics-client-php","owner":"ebics-api","description":"PHP library to make requests by EBICS protocol for financial establishments. Support EBICS versions: 2.4, 2.5, 3.0; Encryption versions: E002, X002, A005, A006; Switching EBICS T/TS.","archived":false,"fork":false,"pushed_at":"2025-07-25T09:07:57.000Z","size":5396,"stargazers_count":54,"open_issues_count":21,"forks_count":35,"subscribers_count":9,"default_branch":"3.x","last_synced_at":"2025-08-01T10:22:06.205Z","etag":null,"topics":["api-rest","bank","cross-platform","ebics","php"],"latest_commit_sha":null,"homepage":"https://ebics-api.github.io/ebics-client-php/","language":"PHP","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/ebics-api.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":"2019-07-19T19:24:18.000Z","updated_at":"2025-07-25T09:08:00.000Z","dependencies_parsed_at":"2024-07-23T09:17:51.530Z","dependency_job_id":"5dcb0eaa-aaaf-4be1-b625-5b764ac387fe","html_url":"https://github.com/ebics-api/ebics-client-php","commit_stats":{"total_commits":325,"total_committers":18,"mean_commits":"18.055555555555557","dds":0.6953846153846154,"last_synced_commit":"7c499812c460a62c1232fa53aff0d7f98af67391"},"previous_names":["ebics-api/ebics-client-php","andrew-svirin/ebics-client-php"],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/ebics-api/ebics-client-php","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebics-api%2Febics-client-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebics-api%2Febics-client-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebics-api%2Febics-client-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebics-api%2Febics-client-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebics-api","download_url":"https://codeload.github.com/ebics-api/ebics-client-php/tar.gz/refs/heads/3.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebics-api%2Febics-client-php/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273480122,"owners_count":25113309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"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":["api-rest","bank","cross-platform","ebics","php"],"created_at":"2025-09-03T18:53:11.090Z","updated_at":"2025-09-03T18:53:11.972Z","avatar_url":"https://github.com/ebics-api.png","language":"PHP","funding_links":[],"categories":["Payments and Banking"],"sub_categories":[],"readme":"# EBICS-CLIENT-PHP\n\n[![CI](https://github.com/ebics-api/ebics-client-php/actions/workflows/ci.yml/badge.svg)](https://github.com/ebics-api/ebics-client-php/actions/workflows/ci.yml)\n[![Latest Stable Version](https://poser.pugx.org/ebics-api/ebics-client-php/v/stable)](https://packagist.org/packages/ebics-api/ebics-client-php)\n[![Total Downloads](https://img.shields.io/packagist/dt/ebics-api/ebics-client-php.svg)](https://packagist.org/packages/ebics-api/ebics-client-php)\n[![License](https://poser.pugx.org/ebics-api/ebics-client-php/license)](https://packagist.org/packages/ebics-api/ebics-client-php)\n\n\u003cimg src=\"https://www.ebics.org/typo3conf/ext/siz_ebicsorg_base/Resources/Public/Images/ebics-logo.png\" width=\"300\"\u003e\n\nPHP library to communicate with a bank through \u003ca href=\"https://en.wikipedia.org/wiki/Electronic_Banking_Internet_Communication_Standard\" target=\"_blank\"\u003eEBICS\u003c/a\u003e protocol.  \nPHP EBICS Client - https://ebics-api.github.io/ebics-client-php/  \nSupported PHP versions - PHP 7.2 and higher  \nSupported EBICS versions: 2.4, 2.5, 3.0; Encryption versions: E002, X002, A005, A006; Switching EBICS T/TS\n\n# 💥 (Premium) EBICS API Client\n\n\u003ca href=\"https://youtu.be/-x6uFZMvEeg\" target=\"_blank\"\u003e\u003cimg src=\"./doc/ebics_api_client.gif\" width=\"300\"\u003e\u003c/a\u003e\n\nGet your \u003ca href=\"https://sites.google.com/view/ebics-api-client\" target=\"_blank\"\u003eEBICS API Client\u003c/a\u003e standalone microservice in Docker for the easiest EBICS integration.\nExplore the \u003ca href=\"https://tinyurl.com/safe-ebics\" target=\"_blank\"\u003eDEMO\u003c/a\u003e to see if it meets your needs.\nIdeal for fintechs, ERPs, payment processors, and enterprises needing a robust EBICS integration.\n\n## License\n\nebics-api/ebics-client-php is licensed under the MIT License, see the LICENSE file for details\n\n## Installation\n\n```bash\n$ composer require ebics-api/ebics-client-php\n```\n\n## Initialize client\n\nYou will need to have this information from your Bank: `HostID`, `HostURL`, `PartnerID`, `UserID`\n\n```php\n\u003c?php\nuse EbicsApi\\Ebics\\Factories\\KeyringFactory;\nuse EbicsApi\\Ebics\\Services\\FileKeyringManager;\nuse EbicsApi\\Ebics\\Models\\Bank;\nuse EbicsApi\\Ebics\\Models\\User;\nuse EbicsApi\\Ebics\\EbicsClient;\nuse EbicsApi\\Ebics\\Models\\X509\\BankX509Generator;\n\n// Prepare `workspace` dir in the __PATH_TO_WORKSPACES_DIR__ manually.\n// \"__EBICS_VERSION__\" should have value \"VERSION_30\" for EBICS 3.0\n$keyringPath = __PATH_TO_WORKSPACES_DIR__ . '/workspace/keyring.json';\n$keyringManager = new FileKeyringManager();\nif (is_file($keyringPath)) {\n    $keyring = $keyringManager-\u003eloadKeyring($keyringPath, __PASSWORD__, __EBICS_VERSION__);\n} else {\n    $keyring = $keyringManager-\u003ecreateKeyring(__EBICS_VERSION__);\n    $keyring-\u003esetPassword(__PASSWORD__);\n}\n$bank = new Bank(__HOST_ID__, __HOST_URL__);\n// Use __IS_CERTIFIED__ true for EBICS 3.0 and/or French banks, otherwise use false.\nif(__IS_CERTIFIED__) {\n    $certificateGenerator = (new BankX509Generator());\n    $certificateGenerator-\u003esetCertificateOptionsByBank($bank);\n    $keyring-\u003esetCertificateGenerator($certificateGenerator);\n}\n$user = new User(__PARTNER_ID__, __USER_ID__);\n$client = new EbicsClient($bank, $user, $keyring);\nif (!is_file($keyringPath)) {\n    $client-\u003ecreateUserSignatures();\n    $keyringManager-\u003esaveKeyring($client-\u003egetKeyring(), $keyringPath);\n}\n```\n\n## Global process and interaction with Bank Department\n\n### 1. Create and store your 3 keys and send initialization request.\n\n```php\n\u003c?php\n\nuse EbicsApi\\Ebics\\Contracts\\EbicsResponseExceptionInterface;\n\n/* @var \\EbicsApi\\Ebics\\EbicsClient $client */\n\ntry {\n    $client-\u003eexecuteStandardOrder(new \\EbicsApi\\Ebics\\Orders\\INI());\n    /* @var \\EbicsApi\\Ebics\\Services\\FileKeyringManager $keyringManager */\n    /* @var \\EbicsApi\\Ebics\\Models\\Keyring $keyring */\n    $keyringManager-\u003esaveKeyring($keyring, $keyringRealPath);\n} catch (EbicsResponseExceptionInterface $exception) {\n    echo sprintf(\n        \"INI request failed. EBICS Error code : %s\\nMessage : %s\\nMeaning : %s\",\n        $exception-\u003egetResponseCode(),\n        $exception-\u003egetMessage(),\n        $exception-\u003egetMeaning()\n    );\n}\n\ntry {\n    $client-\u003eexecuteStandardOrder(new \\EbicsApi\\Ebics\\Orders\\HIA());\n    $keyringManager-\u003esaveKeyring($keyring, $keyringRealPath);\n} catch (EbicsResponseExceptionInterface $exception) {\n    echo sprintf(\n        \"HIA request failed. EBICS Error code : %s\\nMessage : %s\\nMeaning : %s\",\n        $exception-\u003egetResponseCode(),\n        $exception-\u003egetMessage(),\n        $exception-\u003egetMeaning()\n    );\n}\n```\n\n### 2. Generate a EBICS letter\n\n```php\n/* @var \\EbicsApi\\Ebics\\EbicsClient $client */\n$ebicsBankLetter = new \\EbicsApi\\Ebics\\EbicsBankLetter();\n\n$bankLetter = $ebicsBankLetter-\u003eprepareBankLetter(\n    $client-\u003egetBank(),\n    $client-\u003egetUser(),\n    $client-\u003egetKeyring()\n);\n\n$pdf = $ebicsBankLetter-\u003eformatBankLetter($bankLetter, $ebicsBankLetter-\u003ecreatePdfBankLetterFormatter());\n```\n\n### 3. Wait for the bank validation and access activation.\n\n### 4. Fetch the bank keys.\n\n```php\ntry {\n    /* @var \\EbicsApi\\Ebics\\EbicsClient $client */\n    $client-\u003eexecuteInitializationOrder(new \\EbicsApi\\Ebics\\Orders\\HPB());\n    /* @var \\EbicsApi\\Ebics\\Services\\FileKeyringManager $keyringManager */\n    /* @var \\EbicsApi\\Ebics\\Models\\Keyring $keyring */\n    $keyringManager-\u003esaveKeyring($keyring, $keyringRealPath);\n} catch (EbicsResponseExceptionInterface $exception) {\n    echo sprintf(\n        \"HPB request failed. EBICS Error code : %s\\nMessage : %s\\nMeaning : %s\",\n        $exception-\u003egetResponseCode(),\n        $exception-\u003egetMessage(),\n        $exception-\u003egetMeaning()\n    );\n}\n```\n\n### 5. Play with other transactions!\n\n| Transaction | Description                                                                                          |\n|-------------|------------------------------------------------------------------------------------------------------|\n| HEV         | Download supported protocol versions for the Bank.                                                   |\n| INI         | Send to the bank public signature of signature A005.                                                 |\n| HIA         | Send to the bank public signatures of authentication (X002) and encryption (E002).                   |\n| H3K         | Send to the bank public signatures of signature (A005), authentication (X002) and encryption (E002). |\n| HCS         | Upload for renewing user certificates.                                                               |\n| HPB         | Download the Bank public signatures authentication (X002) and encryption (E002).                     |\n| SPR         | Suspend activated keyring.                                                                           |\n| HPD         | Download the bank server parameters.                                                                 |\n| HKD         | Download customer's customer and subscriber information.                                             |\n| HTD         | Download subscriber's customer and subscriber information.                                           |\n| HAA         | Download Bank available order types.                                                                 |\n| PTK         | Download transaction status (Plain text).                                                            |\n| HAC         | Download transaction status (XML).                                                                   |\n| FDL         | Download the files from the bank.                                                                    |\n| FUL         | Upload the files to the bank.                                                                        |\n| BTD         | Download request files of any BTF structure.                                                         |\n| BTU         | Upload the files to the bank.                                                                        |\n\nIf you need to parse Cfonb 120, 240, 360 use [ebics-api/cfonb-php](https://github.com/ebics-api/cfonb-php)  \nIf you need to parse MT942 use [ebics-api/mt942-php](https://github.com/ebics-api/mt942-php)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febics-api%2Febics-client-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febics-api%2Febics-client-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febics-api%2Febics-client-php/lists"}