Supported versions
The language runtimes, frameworks, browsers and platforms each 1.x SDK and the CLI supports, which of them run in CI, and the rule for dropping one.
“Supported” means a bug that reproduces on a version in these tables is fixed. How each target is checked differs:
- Server SDK runtimes run in CI. Every Node.js, Python, PHP and Laravel version listed below runs the package’s tests on every change.
- Browser and CLI targets are built for, not run.
@billkit-eu/jsand@billkit-eu/reactare compiled for the browsers listed, but their tests run in jsdom, not in those browsers. The CLI is built for every platform listed, but not every binary is run in CI: the Linux and Windows arm64 builds, for example, are built and shipped without being run.
A version outside the tables may well work, but nothing checks that it does.
Server SDKs
| Package | Runtime | Notes |
|---|---|---|
| @billkit-eu/sdk | Node.js 22 and 24 | Every Node.js line in Active or Maintenance LTS. A new LTS line is added when it enters LTS. Odd-numbered and Current releases are not tested. Other runtimes, such as Deno and Bun, may work but are not tested. |
| billkit-eu Python | Python 3.11, 3.12, 3.13 and 3.14 | CPython. |
| billkit-eu/billkit-php | PHP 8.1, 8.2, 8.3, 8.4 and 8.5 | Needs ext-curl and ext-json, or any PSR-18 client in place of curl. PHP 8.1 is past its upstream end of life; see below. |
| billkit-eu/billkit-laravel | Laravel 12 on PHP 8.2+, or Laravel 13 on PHP 8.3+ | The package itself needs PHP 8.2. Laravel 13 raises that to 8.3. |
Browser SDKs
| Package | Supported | Notes |
|---|---|---|
| @billkit-eu/js | The latest two major versions of Chrome, Edge and Firefox, Firefox ESR, and Safari 16.4 or later on macOS and iOS | The loader is compiled to ES2020, and the payment element it embeds from js.billkit.eu is built for Safari 14 and the evergreen browsers, so both may well run on older versions than these. The list is what is supported. Internet Explorer is not supported. |
| @billkit-eu/react | React 18 and 19 | With react-dom of the same major version, and the browsers listed for @billkit-eu/js. |
CLI
| Operating system | Architectures | Install with |
|---|---|---|
| macOS | Apple silicon (arm64) and Intel (amd64) | Homebrew, install.sh, or the release archive. Binaries are signed and notarised. |
| Linux | amd64 and arm64 | install.sh or the release archive. Statically linked, so any distribution works. |
| Windows | amd64 and arm64 | The .zip release archive. |
Building from source with go install needs the Go version named in the module’s go.mod.
Dropping a runtime
A runtime, framework or browser version is dropped only when both of these are true:
- It has reached its upstream end of life. For Node.js, Python, PHP and Laravel that is the date its maintainers stop shipping security fixes for it. BillKit does not drop a version its own maintainers still support.
- The release that drops it is a major release. A 1.x minor or patch release never raises a minimum version, so a lockfile that resolves today keeps resolving.
The drop is announced in the package’s CHANGELOG.md at least 90 days before the major release
that makes it. Upstream end of life alone changes nothing: an end-of-life version stays in the
table, and stays supported, until the next major release of that package.
PHP 8.1 reached end of life on 31 December 2025. It stays supported throughout
billkit-eu/billkit-php 1.x and is expected to be dropped in 2.0. Plan an upgrade
even though nothing forces one yet: an end-of-life PHP no longer receives security fixes of its
own.
A version that has to go sooner, because it cannot run a security fix, is the one exception. That is treated as a security fix under the compatibility contract and announced in the changelog when it ships.
BillKit