Download the PHP package open-banking-io/client without Composer

On this page you can find all versions of the php package open-banking-io/client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package client

open-banking.io

open-banking-io (PHP)

Server-to-server client for open-banking.io. It authenticates with your API key and decrypts the zero-knowledge data envelopes locally with your exported private key — the service only ever returns ciphertext it cannot read.

Requires PHP 8.2+ with ext-openssl, ext-curl and ext-json (no runtime Composer dependencies).

Every request carries a User-Agent: open-banking-io/php/<version> header (Client::VERSION) and uses a 30s total / 10s connect timeout.

Or construct it explicitly:

Custom transport & timeouts

Both the constructor and Client::fromCredentials() take an optional array $options for proxy, custom CA / mTLS, and timeout control. curl_options (a map of CURLOPT_* => value) is applied last, so it wins over the SDK defaults; timeout / connect_timeout (seconds) override the 30s / 10s defaults:

API

Money/amount fields are exposed as decimal strings (exact; never a float). Models are final classes with readonly public properties under OpenBankingIO\Model.

A null amount is not zero

$transaction->amount and $balance->amount are ?string. null means the envelope could not be read, never that the transaction was for nothing — $transaction->isSealed() is true and $transaction->decryptError says why. Casting a null amount to a number books a zero-value entry that looks like real data, so branch on isSealed() before you read it:

The same holds for Account::isSealed(), which also reports a balance envelope it could not open.

Encryption

Envelopes use ECDH P-256 → HKDF-SHA256 → AES-256-GCM and are decrypted entirely in-process with ext-openssl. Full wire format and the other language clients: repo README · THREAT_MODEL.md.

Development

The tests read the shared fixtures/ directory, which the release pipeline vendors into tests/fixtures/ in the source mirror. The Packagist distribution archive omits tests/ entirely. The integration test spins up a local mock API using PHP's built-in server (php -S) as a subprocess.

Static analysis & formatting

Coverage

Coverage needs a driver. CI runs with pcov; locally you can also use Xdebug via XDEBUG_MODE=coverage. The <coverage> config emits Cobertura plus a text summary:

The report is written to coverage/cobertura.xml (gitignored). Because phpunit.xml enables a <coverage> report and failOnWarning, run the suite with a coverage driver present (pcov or XDEBUG_MODE=coverage); otherwise PHPUnit emits a "no coverage driver" warning.

Publishing (monorepo caveat)

PHP packages are distributed through Packagist, which auto-syncs from GitHub when a new tag is pushed. Packagist expects composer.json at a repository root, but this package lives in the php/ subdirectory of a monorepo. Two ways to publish it:

  1. Subtree mirror (recommended): publish php/ to a dedicated mirror repo, e.g. git subtree split --prefix=php -b php-release && git push <mirror> php-release:main, and register that mirror on Packagist.
  2. VCS config pointing at the path: some Packagist setups can be configured to read a package from a subdirectory — this is not the default and may require a custom/Private Packagist config.

This is intentionally not solved here — the publish-php.yml workflow validates the manifest and runs the tests, then optionally pings Packagist's update API when the PACKAGIST_USERNAME/PACKAGIST_API_TOKEN secrets are present.

MIT licensed.


All versions of client with dependencies

PHP Build Version
Package Version
Requires php Version >=8.2
ext-openssl Version *
ext-curl Version *
ext-json Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package open-banking-io/client contains the following files

Loading the files please wait ...