PHPackages                             igormakarov/ikassa.cloud.php.sdk - 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. [API Development](/categories/api)
4. /
5. igormakarov/ikassa.cloud.php.sdk

ActiveLibrary[API Development](/categories/api)

igormakarov/ikassa.cloud.php.sdk
================================

Client for work with IKassa.Cloud REST API and auth

v0.2.4(11mo ago)04.3k↓19.8%1MITPHPPHP &gt;=8.0

Since Apr 15Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/MakarovIgor/ikassa.cloud.php.sdk)[ Packagist](https://packagist.org/packages/igormakarov/ikassa.cloud.php.sdk)[ RSS](/packages/igormakarov-ikassacloudphpsdk/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (5)Dependencies (1)Versions (8)Used By (0)

PHP SDK для работы с iKassa Dusik Cloud
---------------------------------------

[](#php-sdk-для-работы-с-ikassa-dusik-cloud)

**iKassa Dusik Cloud**
Облачная касса в Республике Беларусь без физического СКО

#### Официальная документация:

[](#официальная-документация)

Описание облачной кассы: [https://ikassa.by/box-solutions/dusik\_cloud](https://ikassa.by/box-solutions/dusik_cloud)
API:

### Подключение к проекту:

[](#подключение-к-проекту)

```
composer require igormakarov/ikassa.cloud.php.sdk

```

```
require_once 'vendor/autoload.php';
```

### Работа с Авторизацией(получение device\_code, получение прав для работы с API):

[](#работа-с-авторизациейполучение-device_code-получение-прав-для-работы-с-api)

Для работы с авторизаций с iKassa потребуется класс Auth:

```
$auth = new Auth(
    new AuthData(
        'https://accounts.stage.imlab.by',
        ''
    )
);
```

> client\_id - предприятие или клиент получает при регистрации и личном обращении в поддержку iKassa

Получение данных для подтверждения:

```
$bindData = $auth->bindingData("_os", "_osVer", '_deviceName', '_appName');
```

при успешно выполнении в $bindData запишет объект BindingData, котором хранится и можно будет получить user\_code для привязки кассы в ЛК iKassa и device\_code для дальнейшего получения токена авторизации

Пример получения user\_code и device\_code из BindingData

```
$deviceCode = $bindData->getDeviceCode(); // метод получения device_code
$userCode = $bindData->getUserCode(); // метод получения user_code
$expireIn = $bindData->getExpiresIn(); // метод получения скрока действия user_code для привязки кассы в ЛК
```

**Только после того, как получили $userCode и привязали по нему кассу в ЛК, можно получить ключ для работы с API**

Получаем права доступа для работы с API

```
$accessTokenData = $auth->getAccessTokenData('');

$accessTokenData->getAccessToken() // получаем access_token для работы с API
$accessTokenData->getRefreshToken() // получаем refresh_token для обновления access_token через expire_in времени
$accessTokenData->getExpiresIn() // получаем время по истечению которого нужно обновить access_token,
```

Обновление прав доступа

```
$newAccessTokenData = $auth->refreshAccessTokenData('') //your_refresh_token - токен получены с помощью $accessTokenData->getRefreshToken() ранее
```

> refreshAccessTokenData - получает тот же объект AccessTokenData что и getAccessTokenData

### Основные методы для работы с API

[](#основные-методы-для-работы-с-api)

Для работы с API iKassa потребуется класс IKassaApiClient:

```
$kassaApi = new IKassaApiClient(
    new AuthData(
        'https://api.cloud.stage.imlab.by',
        'access_token'
    )
);
```

> access\_token - токен полученный из методов getAccessTokenData или refreshAccessTokenData

В случае успеха, в $kassaApi запишется класс, для дальнейшей работы с API.

```
$kassaApi->isConnected(); // проверяет, привязана ли касса в личном кабинете iKassa.
$kassaApi->getShift(); // возвращает данные о текущей смене
$kassaApi->shiftIsOpen(); // проверяет, открыта ли смена в данный момент
$kassaApi->openShift(); // открытие смены
$kassaApi->closeShift(); // закрытие смены. Перед закрытием смены, из кассы обязательно должна быть изьяты все наличные.
$kassaApi->getCashSumInCashBox(string $currency); // проверка наличных средств в кассе
```

> $currency - валюта, использующаяся в кассе(BYN, USD, EUR или RUB). Типы валют которые используются можно узнать в Currencies::class

Простая продажа товара.

```
// Кол-во тов. позиции. Передается минимальное значение с учетом 3х знаков после запятой. Например: 1.000 (1 штука) = 1000. 1.234 (1 кг 234 г) = 1234

$iKassaClient->sale(
        new Receipt(
            new Header("ФИО кассира", Currencies::BYN), //ФИО кассира и валюта
            new Positions([ //Товары
                (new PositionBuilder('test good', 200, 1000)) //Название товара, стоимость, количество
                    ->setSection(new Section(1, 'отдел 1')) //Номер и название отдела
                    ->setTax(TaxTypes::TAX_10) //HДС 10%, Доступны значения - 0, 10, 20, 25
                    ->build()
            ]),
            new Payments([ //Оплаты
                new Payment(PaymentTypes::CASH, 200), //Тип оплаты "наличка" - CASH, "безнал" - CARD, иные способы расчета "ОTHER"
            ])
        )
    ); // возвращает УИ - уникальный идентификатор документа
```

Более сложная продажа со скидками

```
$iKassaClient->sale(
         new Receipt(
             new Header("ФИО кассира", Currencies::BYN),
             new Positions([
                 (new PositionBuilder('test good', 200, 1000))
                     ->setSection(new Section(1, 'отдел 1'))
                     ->setTax(TaxTypes::TAX_10)
                     ->setDiscount(new Discount(100, "ночная скидка на товар")) //Скидка на товар
                     ->toService() // как услуга
                     ->build(),
                 (new PositionBuilder('test good 2', 100, 1000))
                     ->setSection(new Section(1, 'отдел 1'))
                     ->setTax(TaxTypes::TAX_10)
                     ->setMarkup(new Markup(100, "надбавка просто так на товар")) // Надбавка на товар
                     ->build()
             ]),
             new Payments([
                 new Payment(PaymentTypes::CASH, 100),
                 new Payment(PaymentTypes::CARD, 100),
             ]),
             new Modifiers([
                 new Discount(100, "скидка на весь чек")
             ])
         )
     ); // возвращает УИ - уникальный идентификатор документа
```

Возврат

```
$iKassaClient->refund(
        new RefundReceipt(
            new Header("ФИО кассира", Currencies::BYN),
            new Positions([
                (new PositionBuilder('test good', 100, 1000))
                    ->setSection(new Section(1, 'отдел 1'))
                    ->setTax(TaxTypes::TAX_10)
                     ->setDiscount(new Discount(100, "ночная скидка"))
                    ->build(),
                new Position('test good 22', 100, 1000)
            ]),
            new Payments([
                new Payment(PaymentTypes::CASH, 20),
                new Payment(PaymentTypes::CARD, 80),
            ])
        )
    ); // возвращает УИ - уникальный идентификатор документа
```

Внесение и изъятие и выдача денег

```
// Внесение
$iKassaClient->deposit(new FiscalDocumentData(new Header("ФИО Кассира", Currencies::BYN), 100));
// Изъятие. Обязательно нужно выполнять для каждой валюты перед закрытием смены, если есть наличка в кассе.
$iKassaClient->withdraw(new FiscalDocumentData(new Header("ФИО Кассира", Currencies::BYN), 100));
// Выдача
$iKassaClient->cHWithdraw(new FiscalDocumentData(new Header("MyName", Currencies::$BYN), 10));

// Все методы возвращают УИ - уникальный идентификатор документа
```

Аннулирование последнего документа

```
$iKassaClient->rollback(new RollbackFiscalDocumentData(new RollbackHeader("ФИО кассира"), 61)); //61 - номер последнего документа
// возвращает УИ - уникальный идентификатор документа
```

Как получить чек в HTML-формате по его УИ

```
//адреса для получения чека в html формате
//https://receipts.cloud.ikassa.by/ - для прода
//https://receipts.cloud.stage.imlab.by/ - для стейджа

var_dump((new DocumentRender(
    "https://receipts.cloud.stage.imlab.by/"
))->render('813D867242EC1704071834F3'));
```

Дополнительные функции

```
//Получить сумму наличных в кассе определенной валюты
$sum = $iKassaClient->getCashSumInCashBox(Currencies::BYN);
```

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance50

Moderate activity, may be stable

Popularity24

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 76.2% 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 ~15 days

Total

7

Last Release

352d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/aa5e4cd6c505253ae5b42757c4431cd32c573deb527760fa7e41498933e712d3?d=identicon)[MakarovIgor](/maintainers/MakarovIgor)

---

Top Contributors

[![MakarovIgor](https://avatars.githubusercontent.com/u/28019844?v=4)](https://github.com/MakarovIgor "MakarovIgor (16 commits)")[![olegfill](https://avatars.githubusercontent.com/u/60538677?v=4)](https://github.com/olegfill "olegfill (5 commits)")

### Embed Badge

![Health badge](/badges/igormakarov-ikassacloudphpsdk/health.svg)

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

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.6M985](/packages/statamic-cms)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M47](/packages/tencentcloud-tencentcloud-sdk-php)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k656.1k38](/packages/neuron-core-neuron-ai)[avalara/avataxclient

Client library for Avalara's AvaTax suite of business tax calculation and processing services. Uses the REST v2 API.

528.5M7](/packages/avalara-avataxclient)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)[files.com/files-php-sdk

Files.com PHP SDK

2481.1k](/packages/filescom-files-php-sdk)

PHPackages © 2026

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