PHPackages                             digit-soft/checkbox-ua-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. digit-soft/checkbox-ua-php-sdk

ActiveLibrary[API Development](/categories/api)

digit-soft/checkbox-ua-php-sdk
==============================

PHP SDK for integration with checkbox.ua API

0.3.3(7mo ago)0405MITPHPPHP &gt;=8.3

Since Oct 3Pushed 7mo agoCompare

[ Source](https://github.com/digit-soft/checkbox-ua-php-sdk)[ Packagist](https://packagist.org/packages/digit-soft/checkbox-ua-php-sdk)[ RSS](/packages/digit-soft-checkbox-ua-php-sdk/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (5)Versions (12)Used By (0)

[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![PHP >=8.3](https://camo.githubusercontent.com/5253980db827dadae46909b1e187673bb5ffafd294515214cb0caa175dd026d6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d2533453d5f382e332d6f72616e67652e7376673f7374796c653d666c61742d737175617265)](https://github.com/digit-soft/checkbox-ua-php-sdk)

checkbox-ua-php-sdk
===================

[](#checkbox-ua-php-sdk)

### PHP SDK для работи з Checkbox (Україна)

[](#php-sdk-для-работи-з-checkbox-україна)

##### Примітка:

[](#примітка)

> **За основу взято SDK з **, внесено деякі зміни для зручності роботи з API та перекладено на українську мову. Вдячний пану [igorbunov](https://github.com/igorbunov) за його роботу над цим репо.

> В даному SDK реалізовані тільки функції онлайн режиму (офлайн ніт)

#### Офіційна документація:

[](#офіційна-документація)

#### Встановлення:

[](#встановлення)

```
composer require digit-soft/checkbox-ua-php-sdk
```

#### Налаштування

[](#налаштування)

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

##### Налаштування конфігу:

[](#налаштування-конфігу)

> адреса серверу  (тепер тільки одна адреса для продакш та тестування)
> версія API - v1

```
$config = \DigitSoft\Checkbox\Config::makeWithPin(
    'ключ лицензії каси',
    'PIN-код'
)
```

або

```
$config = \DigitSoft\Checkbox\Config::makeWithLoginPass(
    'ключ лицензії каси',
    'логін касира',
    'пароль касира'
)
```

##### Логін кассира:

[](#логін-кассира)

```
$api = new \DigitSoft\Checkbox\CheckboxJsonApi($config);
$api->cashier()->signIn();
```

##### Логаут кассира:

[](#логаут-кассира)

```
$api->cashier()->signOut();
```

##### Помилки (Exceptions):

[](#помилки-exceptions)

```
\DigitSoft\Checkbox\Exceptions\InvalidCredentials - невірні дані логіну чи паролю
```

```
\DigitSoft\Checkbox\Exceptions\EmptyResponse - порожня відповідь
```

```
\DigitSoft\Checkbox\Exceptions\Validation - помилка валидації (є детальні дані $err->getDetail())
```

```
\DigitSoft\Checkbox\Exceptions\NoActiveShift - Немає активної зміни
```

```
\DigitSoft\Checkbox\Exceptions\AlreadyOpenedShift - Зміна вже відкрита
```

```
\Exception  - стандартна помилка
```

#### Основні методи:

[](#основні-методи)

##### profile (касир):

[](#profile-касир)

```
$api->cashier()->getProfile() : \DigitSoft\Checkbox\Models\Cashier\Cashier // повертає профіль касира
```

##### shifts (зміни):

[](#shifts-зміни)

```
$api->cashier()->getShift() : \DigitSoft\Checkbox\Models\Shifts\Shift // повертає поточну зміну касира
```

```
$api->shifts()->one('ID зміни') : \DigitSoft\Checkbox\Models\Shifts\Shift // повертає зміну по ID
```

```
$api->shifts()->all() : \DigitSoft\Checkbox\Models\Shifts\Shifts // повертає зміни
```

або

```
$api->shifts()->all(
    new \DigitSoft\Checkbox\Models\Shifts\ShiftsQueryParams(
        [
            \DigitSoft\Checkbox\Models\Shifts\ShiftsQueryParams::STATUS_CLOSED,
            \DigitSoft\Checkbox\Models\Shifts\ShiftsQueryParams::STATUS_OPENED
        ], // статуси змін
        false, // desc - сортування (false || true)
        2, // limit
        0  // offset
    )
): \DigitSoft\Checkbox\Models\Shifts\Shifts // повертає зміни з урахуванням фільтру
```

```
$api->shifts()->create() : \DigitSoft\Checkbox\Models\Shifts\CreateShift // створює/відкриває зміну
```

```
$api->shifts()->close() : \DigitSoft\Checkbox\Models\Shifts\CloseShift // закриває зміну
```

##### cash registers (пРРО):

[](#cash-registers-прро)

```
$api->cashRegisters()->all() : \DigitSoft\Checkbox\Models\CashRegisters\CashRegisters // повертає касові реєстратори (пРРО)
```

або

```
$api->cashRegisters()->all(
    new \DigitSoft\Checkbox\Models\CashRegisters\CashRegistersQueryParams(
        true, // inUse - використовується чи ні (true or false)
        3, // limit
        0  // offset
    )
) : \DigitSoft\Checkbox\Models\CashRegisters\CashRegisters // повертає касові реєстратори по фільтру
```

```
$api->cashRegisters()->one('ID каси') : \DigitSoft\Checkbox\Models\CashRegisters\CashRegister // повертає касу по ID
```

```
$api->cashRegisters()->info() : \DigitSoft\Checkbox\Models\CashRegisters\CashRegisterInfo // повертає інформацію по поточній касі
```

##### taxes (податки):

[](#taxes-податки)

```
$api->taxes()->all() : \DigitSoft\Checkbox\Models\Receipts\Taxes\GoodTaxes // повертає всі податки
```

```
$api->taxes()->allByCashier() : \DigitSoft\Checkbox\Models\Receipts\Taxes\GoodTaxes // повертає всі податки по поточному касиру
```

##### transactions (транзакції):

[](#transactions-транзакції)

```
$api->transactions()->all(
    new \DigitSoft\Checkbox\Models\Transactions\TransactionsQueryParams(
        [
            \DigitSoft\Checkbox\Models\Transactions\TransactionsQueryParams::STATUS_CREATED,
            \DigitSoft\Checkbox\Models\Transactions\TransactionsQueryParams::STATUS_DONE,
            \DigitSoft\Checkbox\Models\Transactions\TransactionsQueryParams::STATUS_SIGNED
        ], // статуси транзакцій
        [
            \DigitSoft\Checkbox\Models\Transactions\TransactionsQueryParams::TYPE_RECEIPT,
            \DigitSoft\Checkbox\Models\Transactions\TransactionsQueryParams::TYPE_SHIFT_OPEN,
            \DigitSoft\Checkbox\Models\Transactions\TransactionsQueryParams::TYPE_Z_REPORT
        ], // типи транзакцій
        2, // limit
        0  // offset
    )
) : \DigitSoft\Checkbox\Models\Transactions\Transactions // повертає транзакції по фільтру
```

```
$api->transactions()->one('ID транзакції') : \DigitSoft\Checkbox\Models\Transactions\Transaction // повертає транзакцію по ID
```

```
// Увага! Даний ендпоінт API на даний момент вже прибраний з документації
$api->transactions()->update(
    'ID транзакції',
    base64_encode('request_signature')
) : \DigitSoft\Checkbox\Models\Transactions\Transaction // змінює request_signature в транзакції, працює тільки якщо у неї статус PENDING
```

##### reports (звіти):

[](#reports-звіти)

```
$api->reports()->createX() : \DigitSoft\Checkbox\Models\Shifts\ZReport // створює X звіт
```

```
$api->reports()->one('ID звіту') : \DigitSoft\Checkbox\Models\Shifts\ZReport // повертає дані звіту по ID
```

```
$api->reports()->oneAsText('ID звіту') : string // повертає дані звіту по ID у вигляді тексту
```

або

```
$api->reports()->oneAsText('ID звіту', 60) : string // повертає дані звіту по ID у вигляді тексту, із вказанням ширини тексту
```

```
$api->reports()->onePeriodical(
    new \DigitSoft\Checkbox\Models\Reports\PeriodicalReportQueryParams(
        '2020-10-27T00:00:00+03:00', // дата з
        '2020-11-04T13:15:00+03:00', // дата по
        60 // ширина тексту
    )
) : string // повертає дані звіту за період по фільтру
```

```
$api->reports()->all(
    new \DigitSoft\Checkbox\Models\Reports\ReportsQueryParams(
        '2020-10-27T00:00:00+03:00', // дата з
        '2020-11-04T13:15:00+03:00', // дата по
        [], // масив ID змін
        false, // is_z_report (true or false)
        true, // desc - сортування (false or true)
        3, // limit
        0 // offset
    )
) : \DigitSoft\Checkbox\Models\Reports\Reports // повертає звіт по фільтру
```

##### receipts (чеки):

[](#receipts-чеки)

```
$api->receipts()->all() : \DigitSoft\Checkbox\Models\Receipts\Receipts // повертає чеки
```

```
$api->receipts()->all(
    new \DigitSoft\Checkbox\Models\Receipts\ReceiptsQueryParams(
        '', // fiscal code
        '', // serial
        false, // desc - сортування (false or true)
        2, // limit
        0 // offset
    )
) : \DigitSoft\Checkbox\Models\Receipts\Receipts // повертає чеки по фільтру
```

```
$api->receipts()->one('ID чеку') : \DigitSoft\Checkbox\Models\Receipts\Receipt // повертає чек по ID
```

```
$api->receipts()->oneAsPdf('ID чеку') : string // повертає чек по ID у вигляді PDF
```

```
$api->receipts()->oneAsHtml('ID чеку') : string // повертає чек по ID у вигляді HTML
```

```
$api->receipts()->oneAsText('ID чеку') : string // повертає чек по ID у вигляді тексту
```

```
$api->receipts()->oneAsImageQrCode('ID чеку') : string // повертає чек по ID у вигляді QR коду
```

або

```
// Приклад з відображенням QR-коду
$rawImageContent = $api->receipts()->oneAsImageQrCode('ID чеку');
echo '';
```

###### чек продажи:

[](#чек-продажи)

```
$receipt = new \DigitSoft\Checkbox\Models\Receipts\SellReceipt(
    'Вася Пупкін', // касир
    'Відділ продаж', // відділ
    new \DigitSoft\Checkbox\Models\Receipts\Goods\Goods(
        [
            new \DigitSoft\Checkbox\Models\Receipts\Goods\GoodItemModel( // товар 1
                new \DigitSoft\Checkbox\Models\Receipts\Goods\GoodModel(
                    'vm-123', // good_id
                    50 * 100, // 50 грн
                    'Биовак' // назва товару
                ),
                1 * 1000 // к-сть товару  1 шт
            ),
            new \DigitSoft\Checkbox\Models\Receipts\Goods\GoodItemModel( // товар 2
                new \DigitSoft\Checkbox\Models\Receipts\Goods\GoodModel(
                    'vm-124', // good_id
                    20 * 100, // 20 грн
                    'Биовак 2' // назва товару
                ),
                2 * 1000 // к-сть товару 2 шт
            )
        ]
    ),
    new \DigitSoft\Checkbox\Models\Receipts\Delivery(['admin@gmail.com']), // кому надсилати чек на пошту
    new \DigitSoft\Checkbox\Models\Receipts\Payments\Payments([
        new \DigitSoft\Checkbox\Models\Receipts\Payments\CardPaymentPayload( // безготівкова оплата
            40 * 100 // 40 грн
        ),
        new \DigitSoft\Checkbox\Models\Receipts\Payments\CashPaymentPayload( // готівкова оплата
            50 * 100 // 50 грн
        )
    ])
);

$api->receipts()->createSell($receipt): \DigitSoft\Checkbox\Models\Receipts\Receipt; // виконуємо оплату
```

більш складна оплата

```
$allTaxes = $api->taxes()->all(); // отримали всі податки
$tax = $allTaxes->getTaxByLabel('Акцизний збір'); // отримали один податок за назвою (поле label)
$goodTaxes = $allTaxes->getTaxesByLabel('ПДВ'); // отримали масив податків по label
$taxCodes = [];

// Підготуємо масив кодів податків
foreach ($goodTaxes->results as $goodTax) {
    $taxCodes[] = $goodTax->code;
}

$receipt = new \DigitSoft\Checkbox\Models\Receipts\SellReceipt(
    'Вася Пупкін', // Ім'я касира
    'Відділ продажу', // Відділ
    new \DigitSoft\Checkbox\Models\Receipts\Goods\Goods( // товари
        [
            new \DigitSoft\Checkbox\Models\Receipts\Goods\GoodItemModel(
                new \DigitSoft\Checkbox\Models\Receipts\Goods\GoodModel(
                    'vm-123', // good_id ID товару
                    5000, // 50 грн  ціна 100 = 1 грн
                    'Біовак', // назва
                    '5р47ле78675е3', // баркод
                    'шапка', // header
                    'футер', // footer
                    '3700', // uktzed
                    $goodTaxes // податки товару
                ),
                1000, // к-сть 1000 = 1 шт
                new \DigitSoft\Checkbox\Models\Receipts\Discounts\Discounts( // знижки чи надбавки
                    [
                        new \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel(
                            \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel::TYPE_DISCOUNT, // знижка або надбавка
                            \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel::MODE_VALUE, // по значенню чи по відсотку
                            100, // 1 грн  сума знижки/надбавки  100 = 1 грн
                            $tax->code, // код податку (підготували вище)
                            $taxCodes, // масив кодів податку (підготували вище)
                            'one good discount' // назва
                        )
                    ]
                ),
                $allTaxes->getTaxesByLabel('Акцизний збір'), // податки товару
                false, // повернення товару (false or true)
                0, // сума (не використовується в даному SDK)
                null // ID товару (тільки якщо ви завантажували список товарів (не використовується в даному SDK))
            )
        ]
    ),
    new \DigitSoft\Checkbox\Models\Receipts\Delivery(['admin@gmail.com']), // кому надсилати чек на пошту
    new \DigitSoft\Checkbox\Models\Receipts\Payments\Payments([ // оплати
        new \DigitSoft\Checkbox\Models\Receipts\Payments\CardPaymentPayload( // безготівкова оплата
            400, // сума оплати 400 = 4 грн
            'безготівка', // текст оплати
            0, // code - не знаю для чого
            '0000 0000 0000 0000' // номер картки
        ),
        new \DigitSoft\Checkbox\Models\Receipts\Payments\CashPaymentPayload( // готівкова оплата
            4300, // сума оплати 4300 = 43 грн
            'готівка' // текст оплати
        )
    ]),
    new \DigitSoft\Checkbox\Models\Receipts\Discounts\Discounts( // знижки/надбавки на весь чек
        [
            new \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel(
                \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel::TYPE_DISCOUNT, // знижка чи надбавка
                \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel::MODE_VALUE, // по значенню чи по проценту
                200, // 2 грн  сума знижки/надбавки  200 = 2 грн
                $tax->code, // код податку (підготували вище)
                $taxCodes, // масив кодів податку (підготували вище)
                'total discount' // назва
            )
        ]
    ),
    'check header', // чек хидер
    'check footer', // чек футер
    '45435h543twrege' // баркод
);

$saleReceiptResult = $api->receipts()->createSell($receipt): \DigitSoft\Checkbox\Models\Receipts\Receipt; // виконуємо оплату
```

ще приклад

```
$allTaxes = $api->taxes()->all();
$tax = $allTaxes->getTaxByLabel('Акцизний збір');
$goodTaxes = $allTaxes->getTaxesByCode('1'); // ПДВ 20%
$taxCodes = [];

foreach ($goodTaxes->results as $goodTax) {
    $taxCodes[] = $goodTax->code;
}

$receipt = new \DigitSoft\Checkbox\Models\Receipts\SellReceipt(
    'Вася Пупкин',
    'Отдел продаж',
    new \DigitSoft\Checkbox\Models\Receipts\Goods\Goods(
        [
            new \DigitSoft\Checkbox\Models\Receipts\Goods\GoodItemModel(
                new \DigitSoft\Checkbox\Models\Receipts\Goods\GoodModel(
                    'vm-123', // good_id
                    5000, // 50 грн
                    'Биовак',
                    null,
                    null,
                    null,
                    null,
                    $goodTaxes
                ),
                1000,
                new \DigitSoft\Checkbox\Models\Receipts\Discounts\Discounts(
                    [
                        new \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel(
                            \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel::TYPE_DISCOUNT,
                            \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel::MODE_VALUE,
                            100, // 1 грн
                            $tax->code,
                            $taxCodes,
                            'моя знижка'
                        )
                    ]
                ),
                $allTaxes->getTaxesByLabel('Акцизний збір'),
                false,
                0,
                ''
            ),
            new \DigitSoft\Checkbox\Models\Receipts\Goods\GoodItemModel(
                new \DigitSoft\Checkbox\Models\Receipts\Goods\GoodModel(
                    'vm-124', // good_id
                    2000, // 20 грн
                    'Биовак 2',
                    null,
                    null,
                    null,
                    null,
                    $goodTaxes
                ),
                2000, // 2 шт
                new \DigitSoft\Checkbox\Models\Receipts\Discounts\Discounts(
                    [
                        new \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel(
                            \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel::TYPE_EXTRA_CHARGE,
                            \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel::MODE_VALUE,
                            200, // 2 грн
                            $tax->code,
                            $taxCodes,
                            'моя надбавка'
                        )
                    ]
                ),
                $allTaxes->getTaxesByLabel('Акцизний збір'),
                false,
                0,
                null
            )
        ]
    ),
    new \DigitSoft\Checkbox\Models\Receipts\Delivery(['admin@gmail.com']),
    new \DigitSoft\Checkbox\Models\Receipts\Payments\Payments([
        new \DigitSoft\Checkbox\Models\Receipts\Payments\CardPaymentPayload(
            4700
        ),
        new \DigitSoft\Checkbox\Models\Receipts\Payments\CashPaymentPayload(
            4700
        )
    ]),
    new \DigitSoft\Checkbox\Models\Receipts\Discounts\Discounts(
        [
            new \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel(
                \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel::TYPE_EXTRA_CHARGE,
                \DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel::MODE_VALUE,
                200, // 2 грн
                $tax->code,
                $taxCodes,
                'загальна надбавка'
            )
        ]
    )
);

$api->receipts()->createSell($receipt): \DigitSoft\Checkbox\Models\Receipts\Receipt;
```

```
$api->receipts()->createService(
    new \DigitSoft\Checkbox\Models\Receipts\ServiceReceipt(
        new \DigitSoft\Checkbox\Models\Receipts\Payments\CashPaymentPayload(5100)
    )
): \DigitSoft\Checkbox\Models\Receipts\Receipt // створюємо чек сервісного внесення коштів (готівкою)
```

```
$api->receipts()->createService(
    new \DigitSoft\Checkbox\Models\Receipts\ServiceReceipt(
        new \DigitSoft\Checkbox\Models\Receipts\Payments\CardPaymentPayload(1000)
    )
): \DigitSoft\Checkbox\Models\Receipts\Receipt // створюємо чек сервісного внесення коштів (картою)
```

```
$api->receipts()->createService(
    new \DigitSoft\Checkbox\Models\Receipts\ServiceReceipt(
        new \DigitSoft\Checkbox\Models\Receipts\Payments\CashPaymentPayload(-5100)
    )
): \DigitSoft\Checkbox\Models\Receipts\Receipt // створюємо чек сервісного внесення коштів (готівка) (знак мінус)
```

```
$api->receipts()->createService(
    new \DigitSoft\Checkbox\Models\Receipts\ServiceReceipt(
        new \DigitSoft\Checkbox\Models\Receipts\Payments\CardPaymentPayload(-1000)
    )
): \DigitSoft\Checkbox\Models\Receipts\Receipt // створюємо чек сервісного внесення коштів (картою) (знак мінус)
```

##### Рекомендації:

[](#рекомендації)

> всі операції обгортати в try catch

```
try {

    // код для роботи з API тут

} catch (\DigitSoft\Checkbox\Exceptions\InvalidCredentialsException $err) {
    var_dump('creds err', $err->getMessage());
}  catch (\DigitSoft\Checkbox\Exceptions\EmptyResponseException $err) {
    var_dump('empty response', $err->getMessage(), $err->getTraceAsString());
} catch (\DigitSoft\Checkbox\Exceptions\ValidationException $err) {
    var_dump('valid err', $err->getMessage());
    var_dump('error detail', $err->getDetail());
} catch (\DigitSoft\Checkbox\Exceptions\NoActiveShiftException $err) {
    var_dump('no shift', $err->getMessage());
} catch (\DigitSoft\Checkbox\Exceptions\AlreadyOpenedShiftException $err) {
    var_dump('opened shift', $err->getMessage());
} catch (\Exception $err) {
    var_dump('default err', $err->getMessage());
}
```

##### Підключення класів з прикладів вище:

[](#підключення-класів-з-прикладів-вище)

```
use DigitSoft\Checkbox\Config;
use DigitSoft\Checkbox\CheckboxJsonApi;

use DigitSoft\Checkbox\Exceptions\ValidationException;
use DigitSoft\Checkbox\Exceptions\EmptyResponseException;
use DigitSoft\Checkbox\Exceptions\NoActiveShiftException;
use DigitSoft\Checkbox\Exceptions\InvalidCredentialsException;
use DigitSoft\Checkbox\Exceptions\AlreadyOpenedShiftException;

use DigitSoft\Checkbox\Models\Shifts\ShiftsQueryParams;
use DigitSoft\Checkbox\Models\Reports\ReportsQueryParams;
use DigitSoft\Checkbox\Models\Receipts\ReceiptsQueryParams;
use DigitSoft\Checkbox\Models\Reports\PeriodicalReportQueryParams;
use DigitSoft\Checkbox\Models\Transactions\TransactionsQueryParams;
use DigitSoft\Checkbox\Models\CashRegisters\CashRegistersQueryParams;

use DigitSoft\Checkbox\Models\Receipts\Goods\Goods;
use DigitSoft\Checkbox\Models\Receipts\Goods\GoodModel;
use DigitSoft\Checkbox\Models\Receipts\Goods\GoodItemModel;
use DigitSoft\Checkbox\Models\Receipts\SellReceipt;
use DigitSoft\Checkbox\Models\Receipts\ServiceReceipt;
use DigitSoft\Checkbox\Models\Receipts\Delivery;

use DigitSoft\Checkbox\Models\Receipts\Payments\Payments;
use DigitSoft\Checkbox\Models\Receipts\Payments\CardPaymentPayload;
use DigitSoft\Checkbox\Models\Receipts\Payments\CashPaymentPayload;

use DigitSoft\Checkbox\Models\Receipts\Discounts\Discounts;
use DigitSoft\Checkbox\Models\Receipts\Discounts\DiscountModel;
```

Without Docker

```
#validate composer json
composer check-composer

#static analyzes and codestyle
composer static

#run unit tests
composer unit-tests

#run all tests

composer all-tests

```

###  Health Score

38

—

LowBetter than 84% of packages

Maintenance68

Regular maintenance activity

Popularity15

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 65.5% 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 ~37 days

Recently: every ~87 days

Total

11

Last Release

214d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/12f649f04c2cd6b4d2da7289c360fc122c05a0bc1962e200c979828ed6ba8c4b?d=identicon)[digitv](/maintainers/digitv)

---

Top Contributors

[![igorbunov](https://avatars.githubusercontent.com/u/472284?v=4)](https://github.com/igorbunov "igorbunov (72 commits)")[![MakarovIgor](https://avatars.githubusercontent.com/u/28019844?v=4)](https://github.com/MakarovIgor "MakarovIgor (11 commits)")[![digitv](https://avatars.githubusercontent.com/u/11768817?v=4)](https://github.com/digitv "digitv (9 commits)")[![otis22](https://avatars.githubusercontent.com/u/378373?v=4)](https://github.com/otis22 "otis22 (8 commits)")[![vldmr-k](https://avatars.githubusercontent.com/u/2142055?v=4)](https://github.com/vldmr-k "vldmr-k (4 commits)")[![weirdan](https://avatars.githubusercontent.com/u/57403?v=4)](https://github.com/weirdan "weirdan (3 commits)")[![ezoterik](https://avatars.githubusercontent.com/u/1498377?v=4)](https://github.com/ezoterik "ezoterik (2 commits)")[![danilyer228](https://avatars.githubusercontent.com/u/33658320?v=4)](https://github.com/danilyer228 "danilyer228 (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/digit-soft-checkbox-ua-php-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/digit-soft-checkbox-ua-php-sdk/health.svg)](https://phpackages.com/packages/digit-soft-checkbox-ua-php-sdk)
```

###  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)
