PHPackages                             ninedigit/ekasa-clientphp - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. ninedigit/ekasa-clientphp

ActiveLibrary[HTTP &amp; Networking](/categories/http)

ninedigit/ekasa-clientphp
=========================

API client for eKasa API

3.1.0(1y ago)19.4k↓37%2MITPHPPHP ^7.4 || ^8.1

Since Sep 12Pushed 1y ago1 watchersCompare

[ Source](https://github.com/ninedigit/ekasa-clientphp)[ Packagist](https://packagist.org/packages/ninedigit/ekasa-clientphp)[ Docs](https://bitbucket.org/9digit/ekasa-clientphp)[ RSS](/packages/ninedigit-ekasa-clientphp/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (9)Versions (24)Used By (0)

e-Kasa Client PHP
=================

[](#e-kasa-client-php)

HTTP klient v jazyku PHP pre [e-Kasa API riešenie](https://ekasa.ninedigit.sk) spoločnosti [Nine Digit, s.r.o.](https://ninedigit.sk/).

Inštalácia
==========

[](#inštalácia)

Knižnica je kompatibilná s PHP vo verzii 7.4, 8.1 a vyššej.

Inštalácia cez Packagist
------------------------

[](#inštalácia-cez-packagist)

Knižnica je dostupná na .

Najnovšiu verziu balíka nainštalujete príkazom:

```
composer require ninedigit/ekasa-clientphp
```

Inštaláciu špecifickej verzie nainštalujete príkazom:

```
composer require ninedigit/ekasa-clientphp:0.0.1
```

Inštalácia cez GitHub repozitár
-------------------------------

[](#inštalácia-cez-github-repozitár)

1. Upravte súbor `composer.json` a do kolekcie `repositories` pridajte nový repozitár:

```
{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/ninedigit/ekasa-clientphp"
    }
  ]
}

```

2. Nainštalujte balík

Najnovšiu verziu balíka nainštalujete príkazom:

```
composer require ninedigit/ekasa-clientphp
```

Inštaláciu špecifickej verzie nainštalujete príkazom:

```
composer require ninedigit/ekasa-clientphp:0.0.1
```

> Viac informácii o inštalácii privátnych repozitárov nájdete [v Composer dokumentácii](https://getcomposer.org/doc/05-repositories.md#using-private-repositories).

Použitie
========

[](#použitie)

> Knižnica aktuálne pokrýva iba funkcionalitu registrácie dokladu. Ak máte záujem o rozšírenie, zadajte prosím dopyt na .

Knižnicu je možné používať v dvoch režimoch:

Cez lokálnu sieť
----------------

[](#cez-lokálnu-sieť)

Služba je po inštalácií štandardne dostupná na porte `3010` (`http://localhost:3010`).

Klientskú triedu inštanciujte nasledovne:

```
$clientOptions = new ApiClientOptions(EKasaServer::LOCALHOST);
$client = new ApiClient($clientOptions);
```

> TIP: Ak ste integrátor a potrebujete testovaciu eKasa API inštanciu, postupujte podľa [tohto návodu](INTEGRATOR.md).

Cez internet so službou Expose
------------------------------

[](#cez-internet-so-službou-expose)

Ak je vaša PHP aplikácia používajúca túto knižnicu nasadená na inom počítači (na serveri resp. v cloude), je potrebné zabezpečiť sieťové spojenie s lokálne nainštalovanou eKasa API.

Riešením je práve služba **Expose**, ktorá priradí k vašej lokálne nainštalovanej eKasa API URL adresu s použitím zabezpečeného HTTPS protokolu.

- Nie je potrebné žiadne nastavenie smerovača (routra) či obstarávanie statickej IP adresy u internetového poskytovateľa.
- Nadviazané spojenie je šifrované
- Prístup k eKasa API službe je chránený nastaveným prístupovým kľúčom, ktorý je možné kedykoľvek aktualizovať.

Pre aktiváciu služby a získanie prihlasovacích údajov nás kontaktujte na e-mailovej adrese .

Pri použití Expose služby inštanciujete klientskú triedu nasledovne:

```
$url = EKasaServer::exposeProduction("{vas_nazov_domeny}");
$accessTokenSource = AccessTokenSource::queryString("access_token");
$accessTokenOptions = new ApiClientAuthenticationAccessTokenOptions("{vas_bezpecnostny_kluc}", $accessTokenSource);
$authentication = new ApiClientAuthenticationOptions(null, $accessTokenOptions);
$clientOptions = new ApiClientOptions($url, $authentication);
$client = new ApiClient($clientOptions);
```

Príklady
--------

[](#príklady)

> Príklady sú dostupné v adresári [examples](https://github.com/ninedigit/ekasa-clientphp/tree/master/examples).

### Príklad tvorby pokladničného dokladu

[](#príklad-tvorby-pokladničného-dokladu)

```
// Vytvorenie klienta
$clientOptions = new ApiClientOptions(EKasaServer::LOCALHOST);
$client = new ApiClient($clientOptions);

// Nastavenia tlače
$posPrinterOptions = new PosReceiptPrinterOptions();
$posPrinterOptions->openDrawer = true;
$print = new PosRegisterReceiptPrintContextDto($posPrinterOptions);

// Položka
$items = array(
  new ReceiptItemDto(
    ReceiptItemType::POSITIVE,  // Kladný typ položky
    "Coca Cola 0.25l",          // Názov
    1.29,                       // Jednotková cena
    20.00,                      // Daňová hladina
    new QuantityDto(2, "ks"),   // Množstvo
    2.58                        // Cena
  )
);

// Požiadavka registrácie
$receipt = ReceiptBuilder::cashRegister("88812345678900001", $items)
    ->setHeaderText("Nine Digit, s.r.o.") // Voliteľná hlavička dokladu
    ->setFooterText("Ďakujeme za nákup!") // Voliteľná pätička dokladu
    ->addPayment(new ReceiptPaymentDto(2.60, ReceiptPaymentName::CASH))
    ->addPayment(new ReceiptPaymentDto(-0.02, "Výdavok"))
    ->build();

$request = new RegisterReceiptRequestDto($receipt);
$requestContext = new RegisterReceiptRequestContextDto($print, $request);

// Registrácia
$result = $client->registerReceipt($requestContext);
```

### Zaokrúhľovanie

[](#zaokrúhľovanie)

V prípade, ak do premenných vkladáte výsledky matematických operácii, pred priradením je vhodné premenné zaokrúhliť.

- Jednotkové ceny sú zaokrúhľované na 6 desatinných miest.
- Ceny sú zaokrúhľované na 2 desatinné miesta.
- Množstvá sú zaokrúhľované na 4 desatinné miesta.

Vývoj
=====

[](#vývoj)

Inštalácia Composer-a
---------------------

[](#inštalácia-composer-a)

```
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
```

Inštalácia závislostí knižnice:

```
php composer.phar install
```

Po vytvorení nových tried (v separátnych súboroch) je nutné vyvolať

```
php composer.phar dump-autoload
```

Testovanie
==========

[](#testovanie)

Pre vykonanie integračných testov je nutné vytvoriť súbor `settings.json` v `tests\integration` vo formáte **JSON** so štruktúrou zhodnou s triedou `ApiClientOptions`.

Napríklad:

```
{
  "url": "https://test.expose.ninedigit.sk",
  "proxyUrl": "192.168.1.218:9090",
  "authentication": {
    "credentials": {
      "userName": "admin",
      "password": "admin"
    },
    "accessToken": {
      "value": "31d6cfe0d16ae931b73c59d7",
      "source": {
        "name": "queryString",
        "keyName": "access_token"
      }
    }
  }
}
```

Testy je možné spustiť príkazom:

```
./vendor/bin/phpunit --verbose tests
```

Pre spustenie konkrétneho testu je nutné uviesť prepínač `--filter` s názvom testovaciej metódy.

Napríklad:

```
./vendor/bin/phpunit --verbose tests --filter testRegisterCashRegisterReceiptUsingPosPrinter

```

Overenie kompatibility PHP
--------------------------

[](#overenie-kompatibility-php)

```
./vendor/bin/phpcs --standard=PHPCompatibility --extensions=php --runtime-set testVersion 8.1- ./src

```

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance45

Moderate activity, may be stable

Popularity28

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 83.3% of commits — single point of failure

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 ~30 days

Recently: every ~41 days

Total

19

Last Release

426d ago

Major Versions

0.0.7 → 1.1.02023-12-18

1.3.0 → 2.0.02024-02-12

2.1.4 → 3.0.02024-11-12

PHP version history (3 changes)0.0.1PHP &gt;=7.4

2.0.1PHP &gt;=8.1

2.1.0PHP ^7.4 || ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/5151edd8132a24e1a6d343d77c9a90ad9d03718ed7053794b29ff6d3180a75ce?d=identicon)[ninedigit](/maintainers/ninedigit)

---

Top Contributors

[![tompetko](https://avatars.githubusercontent.com/u/5519528?v=4)](https://github.com/tompetko "tompetko (5 commits)")[![yurislav](https://avatars.githubusercontent.com/u/5786323?v=4)](https://github.com/yurislav "yurislav (1 commits)")

---

Tags

httpapiclientrestekasa

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ninedigit-ekasa-clientphp/health.svg)

```
[![Health](https://phpackages.com/badges/ninedigit-ekasa-clientphp/health.svg)](https://phpackages.com/packages/ninedigit-ekasa-clientphp)
```

###  Alternatives

[api-platform/symfony

Symfony API Platform integration

323.2M67](/packages/api-platform-symfony)[api-platform/serializer

API Platform core Serializer

223.4M31](/packages/api-platform-serializer)[printu/labelary

PHP API for Labelary.com

34616.9k](/packages/printu-labelary)[printu/customerio

PHP API for Customer.io

241.1M2](/packages/printu-customerio)[e-moe/guzzle6-bundle

Integrates Guzzle 6 into your Symfony application

11259.2k](/packages/e-moe-guzzle6-bundle)[meteocontrol/vcom-api-client

HTTP Client for meteocontrol's VCOM API - The VCOM API enables you to directly access your data on the meteocontrol platform.

175.7k1](/packages/meteocontrol-vcom-api-client)

PHPackages © 2026

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