PHPackages                             gamebay/rksv - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. gamebay/rksv

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

gamebay/rksv
============

Austrian RKSV implementation with PrimeSign online certificate signing service

v1.1.3(2y ago)74531GPL-3.0-or-laterPHPPHP ^8.0

Since Oct 17Pushed 2y ago6 watchersCompare

[ Source](https://github.com/gamebay/rksv)[ Packagist](https://packagist.org/packages/gamebay/rksv)[ RSS](/packages/gamebay-rksv/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (3)Dependencies (3)Versions (19)Used By (0)

Austrian cash register fiscalization
====================================

[](#austrian-cash-register-fiscalization)

**Please be aware this repository is still under active development** if you plan to use it in a production environment.

In Austria the fiscalization process is called Registrierkassensicherheitsverordnung (RKSV).

In this repository, we use about PrimeSign online sign feature (via Cryptas).

What we took from them is a simple service which accepts RKSV payloads and then gives you a properly encrypted &amp; signed response. Worry free and fewer complications with signing receipts. So what you need for this package to work is the following:

- PHP
- [PrimeSign remote signing SaaS](https://www.cryptoshop.com/products/zertifikate.html) service for RKSV (for example: we took this [one](http://www.cryptoshop.com/products/zertifikate/rksv-primesign-remotesigning-hosted-bdl-24-7-150.html))

How it works
------------

[](#how-it-works)

First you have to create a receipt with data which will be used for signing:

```
$receiptData = ReceiptData::withData(
    $receipt->cashBoxId->id, // Cash register ID
    $receipt->cashBoxId->daily_income, // Daily register income sum
    $receipt->number, // Receipt number
    \DateTime::createFromFormat('Y-m-d H:i:s', $receipt->created_at),
    [
        [
            'brutto' => 123,
            'tax' => 20
        ],
        [
            'brutto' => 224,
            'tax' => 20
        ]
    ],
    $receipt->previous_receipt->signature
);
```

Using the created `ReceiptData`, pass it on to `ReceiptSigner` with other PrimeSign arguments and call the desired method for signing:

```
$primeSignBaseCertificateURL = 'Insert Prime Sign base certificate URL';
$primeSignReceiptSignURL = 'Insert Prime Sign receipt sign URL';
$primeSignTokenKey = 'Insert Prime Sign token key';
$encryptionKey = 'Insert Prime Sign encryption key';
$primeSignCertificateNumber = 'Insert Prime Sign certificate number';
$taxRates = ['20', '10', '13', '0', 'special'];
$locationId = 'Insert location ID';

$receiptSigner = new ReceiptSigner(
    $primeSignBaseCertificateURL,
    $primeSignReceiptSignURL,
    $primeSignTokenKey,
    $primeSignCertificateNumber,
    $encryptionKey,
    $taxRates,
    $locationId,
    $receiptData
);

if ($this->gross > 0) {
    $receiptSigner->normalSign();
}
```

Getting the result of signing:

```
$signature = $receiptSigner->getSignature();
$QR = $receiptSigner->getQR();
```

Beside normal signer, you can also call:

- cancel receipt signature `$receiptSigner->cancelSign();`
- training receipt signature `$receiptSigner->trainingSign();`

Null sign will use the `cashBoxId` for generating chain value. This is the first receipt you create when initializing receipt sequences. The package will accept items, but will ignore them and overwrite with zero values.

```
$receiptSigner->nullSign();
```

### Contributing

[](#contributing)

In case you notice any bugs, open up a new issue, so we can discuss it and fix it ASAP.

Keep in mind, this is an open source project and anyone can contribute by opening up a pull request so feel free to fix the bugs your selves in order to have them merged sooner. If you want to add a feature, please open up an issue, and then we can discuss further actions. Without opening a new issue we will ignore any pull requests for new features.

With new features please describe the changes you made within the pull request and place a link to an open issue which relates to your pull request.

### Licence

[](#licence)

The project is open sourced under GNU v3.0 public licence.

### TODO and general

[](#todo-and-general)

- implement proper unit tests which should cover hashing, encryption, qr code generation and other major-impact topics
- implement proper unit tests for entire process - normal sign, training sign and cancel sign + chaining of all those
- implement command which will gneerate the null reciept that can also be used
- documentation on code and RKSV process
- complete remove sign service factory and implement all logic inside a SignService class.
- revise all exeptions and poperly test them via unit tests
- revise all validators and see on what are needed and which can be added
- expand on info on how to incorporate into other peojects (if needed, discuss)

Updating this package works like this:

- commit
- push to master
- create tag
- push tag
- webhook is triggered to send tag to PHP packages repo
- convert tag to release - example github action is on other repos

Other repos using this one will need to update their packages entry to use latest version.

### About us

[](#about-us)

[Gamebay](https://gamebay.io) is a platform for managing gaming arenas, providing full support for running games and offering cash register solution as all in one software.

We are partners with [Friendly Fire Esports](https://friendlyfireesports.com/en) arenas.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~117 days

Recently: every ~4 days

Total

14

Last Release

921d ago

PHP version history (2 changes)v1.0.0PHP &gt;=7.2.0

v1.0.5PHP ^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/38069581?v=4)[Toni Krešić](/maintainers/tkresic)[@tkresic](https://github.com/tkresic)

![](https://www.gravatar.com/avatar/4468f4289509e02c059f1edd9c6840f374da4f6199f80425ab14a4fdd9eea0ba?d=identicon)[slovnicki](/maintainers/slovnicki)

---

Top Contributors

[![IvanoCar](https://avatars.githubusercontent.com/u/9317874?v=4)](https://github.com/IvanoCar "IvanoCar (10 commits)")[![nkorent](https://avatars.githubusercontent.com/u/32095650?v=4)](https://github.com/nkorent "nkorent (8 commits)")[![tkresic](https://avatars.githubusercontent.com/u/38069581?v=4)](https://github.com/tkresic "tkresic (5 commits)")[![mikulicf](https://avatars.githubusercontent.com/u/72322905?v=4)](https://github.com/mikulicf "mikulicf (2 commits)")[![itapai](https://avatars.githubusercontent.com/u/997297?v=4)](https://github.com/itapai "itapai (1 commits)")

---

Tags

fiscalizationrksv

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/gamebay-rksv/health.svg)

```
[![Health](https://phpackages.com/badges/gamebay-rksv/health.svg)](https://phpackages.com/packages/gamebay-rksv)
```

###  Alternatives

[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k496.1k33](/packages/neuron-core-neuron-ai)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3661.2M46](/packages/tencentcloud-tencentcloud-sdk-php)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

749284.3k35](/packages/civicrm-civicrm-core)[roundcube/roundcubemail

The Roundcube Webmail suite

7.0k1.4k3](/packages/roundcube-roundcubemail)[spatie/laravel-export

Create a static site bundle from a Laravel app

672139.5k6](/packages/spatie-laravel-export)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

232.5k](/packages/eslazarev-wildberries-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
