PHPackages                             olegfill/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. olegfill/ikassa.cloud.php.sdk

ActiveLibrary[API Development](/categories/api)

olegfill/ikassa.cloud.php.sdk
=============================

Client for work with IKassa.Cloud REST API and auth

v0.2.6(10mo ago)0103MITPHPPHP &gt;=8.0

Since May 30Pushed 10mo agoCompare

[ Source](https://github.com/olegfill/ikassa.cloud.php.sdk)[ Packagist](https://packagist.org/packages/olegfill/ikassa.cloud.php.sdk)[ RSS](/packages/olegfill-ikassacloudphpsdk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (7)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

Изьятие денег из кассы.

```
$header = new Header(
        string $cashierName,
        string $currency
    );

$fiscalDocumentData = new FiscalDocumentData(IHeader $header, int $sum);

$kassaApi->withdraw(FiscalDocumentData $fiscalDocumentData); // Изьятие. Обязательно нужно выполнят перед закрытием смены, если есть наличка в кассе.
```

Продажа товара.

```
$positions = [];

$position1 = new PositionBuilder(
    string $goodTitle,
    int $cost     // Цена за 1 ед. тов. позиции в копейках
    int $quantity // Кол-во тов. позиции. Передается минимальное значение с учетом 3х знаков после запятой. Например: 1.000 (1 штука) = 1000. 1.234 (1 кг 234 г) = 1234.
);

$position1->setTax(int $tax); // НДС товара. Доступны значения - 0, 10, 20, 25
$position1->setSection(Section $section); // Секция товара. Опциональное поле. Принимает обьект Section(int $code, string $name)
$positions[] = $position1->build();

$items = new Positions($positions);

$paymentsArr = [];
$paymentsArr[] = new Payment(int $type, int sum); // $type - тип оплаты. 0 - Безнал, 1 - Наличные. 2 - др. способы.

$payments = new Payments($paymentsArr); // //Кол-во оплат наличными не может быть больше 1 штуки

$modifier = new Modifier(int $sum, string $name = "", string $group = "") // Модификаторы цены (скидки/надбавки). Опциональное поле.

//$sum
//Скидка: отрицательное значение.
//Надбавка: положительное значение.
//Значение по модулю не может превышать 54975581388799

//$name
//Наименование Скидки/Надбавки для отображения

//$group
//Идентификатор для группировки и получения статистической информации из внешнего ПО: бух. учет, ТУ и др.

$modifiers = new Modifiers(array $modifiers); // Может быть передана только 1 скидка и 1 надбавка.

$receipt = new Receipt(
    $header,
    $items,
    $payments,
    $modifiers
);

$kassaApi->sale(Receipt $receipt); // Продажа
```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance54

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 66.7% 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 ~6 days

Total

5

Last Release

320d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/34721c5ce1857b7858af0481059f3e2fdd1995271474a030dee3537cebea163e?d=identicon)[olegfill](/maintainers/olegfill)

---

Top Contributors

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

### Embed Badge

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

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

###  Alternatives

[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[convertkit/convertkitapi

Kit PHP SDK for the Kit API

2167.1k1](/packages/convertkit-convertkitapi)[mapado/rest-client-sdk

Rest Client SDK for hydra API

1125.9k2](/packages/mapado-rest-client-sdk)

PHPackages © 2026

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