PHPackages                             sashalenz/checkbox-api - 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. sashalenz/checkbox-api

ActiveLibrary[API Development](/categories/api)

sashalenz/checkbox-api
======================

Laravel client for Checkbox ПРРО API

1.0.0(2mo ago)087MITPHPPHP ^8.4

Since Apr 4Pushed 2mo agoCompare

[ Source](https://github.com/sashalenz/checkbox-api)[ Packagist](https://packagist.org/packages/sashalenz/checkbox-api)[ Docs](https://github.com/sashalenz/checkbox-api)[ RSS](/packages/sashalenz-checkbox-api/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (12)Versions (2)Used By (0)

Checkbox API
============

[](#checkbox-api)

Laravel client for the [Checkbox RRO API](https://api.checkbox.in.ua/api/redoc) — full coverage of all 145 endpoints from the official API v2.94.1.

Requirements
------------

[](#requirements)

- PHP 8.4+
- Laravel 11 / 12 / 13

Installation
------------

[](#installation)

```
composer require sashalenz/checkbox-api
```

Publish the config file:

```
php artisan vendor:publish --tag="checkbox-api-config"
```

Configuration
-------------

[](#configuration)

`.env`:

```
CHECKBOX_TOKEN=your-jwt-token
CHECKBOX_LICENSE_KEY=your-license-key
```

`config/checkbox-api.php`:

```
return [
    'base_url'       => env('CHECKBOX_API_URL', 'https://api.checkbox.in.ua/api/v1/'),
    'token'          => env('CHECKBOX_TOKEN'),
    'license_key'    => env('CHECKBOX_LICENSE_KEY'),
    'timeout'        => 30,
    'retry'          => ['times' => 3, 'sleep' => 150],
    'client_name'    => env('CHECKBOX_CLIENT_NAME', 'sashalenz/checkbox-api'),
    'client_version' => env('CHECKBOX_CLIENT_VERSION', '1.0.0'),
];
```

Usage
-----

[](#usage)

### Facade

[](#facade)

```
use Sashalenz\CheckboxApi\Facades\Checkbox;

$token = Checkbox::cashier()->signIn(
    new SignInData(login: 'login@example.com', password: 'secret')
)->access_token;

Checkbox::setToken($token);
```

### Dependency Injection

[](#dependency-injection)

```
use Sashalenz\CheckboxApi\CheckboxApi;

class FiscalService
{
    public function __construct(private readonly CheckboxApi $api) {}

    public function openShift(): ShiftData
    {
        return $this->api->shifts()->create();
    }
}
```

---

Resources
---------

[](#resources)

### Cashier (`cashier()`)

[](#cashier-cashier)

```
$api->cashier()->signIn(SignInData $data): AccessTokenData
$api->cashier()->signInPinCode(SignInPinCodeData $data): AccessTokenData
$api->cashier()->signOut(): bool
$api->cashier()->me(): CashierData
$api->cashier()->shift(): ShiftData
$api->cashier()->checkSignature(): SignatureStatusData
$api->cashier()->taxes(): DataCollection
```

### Shifts (`shifts()`)

[](#shifts-shifts)

```
$api->shifts()->list(int $limit, int $offset): PaginatedData
$api->shifts()->create(?CreateShiftData $data): ShiftData
$api->shifts()->get(string $shiftId): ShiftData
$api->shifts()->shortShift(string $shiftId): array
$api->shifts()->close(string $shiftId, ?array $payload): ShiftData
$api->shifts()->closeCurrentShift(?array $payload): ShiftData
```

### Receipts (`receipts()`)

[](#receipts-receipts)

```
$api->receipts()->list(...): PaginatedData
$api->receipts()->search(array $params): PaginatedData
$api->receipts()->get(string $receiptId): ReceiptData
$api->receipts()->sell(SellReceiptData $data): ReceiptData
$api->receipts()->sellOffline(SellReceiptData $data): ReceiptData
$api->receipts()->bulkSell(array $payload): array
$api->receipts()->service(ServiceReceiptData $data): ReceiptData
$api->receipts()->serviceCurrency(array $payload): ReceiptData
$api->receipts()->cashWithdrawal(array $payload): ReceiptData
$api->receipts()->currencyExchange(array $payload): ReceiptData
$api->receipts()->validate(array $payload): array
$api->receipts()->html(string $receiptId): string
$api->receipts()->pdf(string $receiptId): string
$api->receipts()->text(string $receiptId): string
$api->receipts()->png(string $receiptId): string
$api->receipts()->qrCode(string $receiptId): string
$api->receipts()->xml(string $receiptId): string
$api->receipts()->sendEmail(string $receiptId, string $email): array
$api->receipts()->sendSms(string $receiptId, string $phone): array
```

### Prepayment Receipts (`prepaymentReceipts()`)

[](#prepayment-receipts-prepaymentreceipts)

```
$api->prepaymentReceipts()->search(array $params): PaginatedData
$api->prepaymentReceipts()->get(string $relationId): array
$api->prepaymentReceipts()->create(array $payload): ReceiptData
$api->prepaymentReceipts()->createAfterPayment(string $relationId, array $payload): ReceiptData
$api->prepaymentReceipts()->return(string $relationId, array $payload): array
```

### Goods (`goods()`)

[](#goods-goods)

```
$api->goods()->list(...): PaginatedData
$api->goods()->get(string $goodId): GoodData
$api->goods()->getByCode(string $code): GoodData
$api->goods()->create(CreateGoodData $data): GoodData
$api->goods()->update(string $goodId, array $payload): GoodData
$api->goods()->delete(string $goodId): array
$api->goods()->leftoversById(array $goodIds): array

// Groups
$api->goods()->groups(...): PaginatedData
$api->goods()->getGroup(string $groupId): GoodGroupData
$api->goods()->createGroup(CreateGoodGroupData $data): GoodGroupData
$api->goods()->updateGroup(string $groupId, array $payload): GoodGroupData
$api->goods()->deleteGroup(string $groupId): array
$api->goods()->moveGoods(string $groupId, string $toGroupId): array

// Export / Import
$api->goods()->exportGoods(string $extension): array          // csv|excel|json
$api->goods()->exportTaskStatus(string $taskId): array
$api->goods()->exportFile(string $taskId, ?int $chunk): string
$api->goods()->importUpload(string $contents, string $filename, bool $ignoreBarcodes, bool $autoSupply): array
$api->goods()->importTaskStatus(string $taskId): array
$api->goods()->importApplyChanges(string $taskId): array
```

### Orders (`orders()`)

[](#orders-orders)

```
$api->orders()->list(...): PaginatedData
$api->orders()->get(string $orderId): OrderData
$api->orders()->create(CreateOrderData $data): OrderData
$api->orders()->cancel(string $orderId): array
$api->orders()->close(string $orderId): array
$api->orders()->delete(array $orderIds): array
$api->orders()->setCustomStatus(string $orderId, string $newStatus): array
$api->orders()->sync(): array
$api->orders()->getIntegration(): array
$api->orders()->setIntegration(string $url): array
$api->orders()->deleteIntegration(): array
$api->orders()->editIntegrationOrder(array $payload): array
```

### Invoices / Acquiring (`invoices()`)

[](#invoices--acquiring-invoices)

```
$api->invoices()->list(...): array
$api->invoices()->get(string $invoiceId): InvoiceData
$api->invoices()->create(CreateInvoiceData $data): InvoiceData
$api->invoices()->fiscalize(CreateInvoiceData $data): InvoiceData
$api->invoices()->cancel(string $invoiceId): array      // PATCH
$api->invoices()->cancelById(string $invoiceId): array  // DELETE
$api->invoices()->refund(string $invoiceId): array
$api->invoices()->remove(string $invoiceId): array
$api->invoices()->terminals(): array
```

### Reports (`reports()`)

[](#reports-reports)

```
$api->reports()->list(...): PaginatedData
$api->reports()->search(...): PaginatedData
$api->reports()->get(string $reportId): ReportData
$api->reports()->create(): ReportData          // X-report
$api->reports()->periodical(...): string
$api->reports()->addExternal(array $payload): ReportData
$api->reports()->text(string $reportId): string
$api->reports()->png(string $reportId): string
```

### Extended Reports (`extendedReports()`)

[](#extended-reports-extendedreports)

```
$api->extendedReports()->zReport(ZReportData $data): array
$api->extendedReports()->goodsReport(array $payload): array
$api->extendedReports()->actualRevenue(array $payload): array
$api->extendedReports()->netTurnover(array $payload): array
$api->extendedReports()->bookkeeperZReport(array $payload): array
$api->extendedReports()->dailyCashFlow(array $payload): array
$api->extendedReports()->receiptReport(array $payload): array
$api->extendedReports()->smsReceipts(array $payload): array
$api->extendedReports()->bookkeeperPayments(array $payload): array
$api->extendedReports()->fuibAggregated(array $payload): array
$api->extendedReports()->getTask(string $taskId): array
$api->extendedReports()->getTaskFile(string $taskId, string $extension): string
```

### Transactions (`transactions()`)

[](#transactions-transactions)

```
$api->transactions()->list(...): PaginatedData
$api->transactions()->get(string $transactionId): TransactionData
```

### Cash Registers (`cashRegisters()`)

[](#cash-registers-cashregisters)

```
$api->cashRegisters()->list(...): PaginatedData
$api->cashRegisters()->info(): CashRegisterData
$api->cashRegisters()->get(string $cashRegisterId): CashRegisterData
$api->cashRegisters()->shifts(...): PaginatedData
$api->cashRegisters()->goOnline(): array
$api->cashRegisters()->goOffline(): array
$api->cashRegisters()->pingTaxService(): array
$api->cashRegisters()->askOfflineCodes(): array
$api->cashRegisters()->getOfflineCodes(): array
$api->cashRegisters()->getOfflineCodesCount(): array
$api->cashRegisters()->getOfflineTime(): array
```

### Organization (`organization()`)

[](#organization-organization)

```
$api->organization()->get(): OrganizationData
$api->organization()->receiptConfig(): array
$api->organization()->logo(): string
$api->organization()->textLogo(): string
$api->organization()->smsBilling(): array
$api->organization()->cashiers(...): PaginatedData
$api->organization()->billingStatus(): BillingStatusData
```

### Currency Rates (`currency()`)

[](#currency-rates-currency)

```
$api->currency()->rates(): array
$api->currency()->rateByCode(string $code): CurrencyRateData
$api->currency()->setup(SetupCurrencyRateData $data): array
```

### Webhook (`webhook()`)

[](#webhook-webhook)

```
$api->webhook()->get(): WebhookData
$api->webhook()->set(SetWebhookData $data): array
$api->webhook()->delete(): array
```

### eTTN (`ettn()`)

[](#ettn-ettn)

```
$api->ettn()->list(...): array
$api->ettn()->create(array $payload): EttnData
$api->ettn()->get(string $orderId): EttnData
$api->ettn()->update(string $orderId, array $payload): EttnData
$api->ettn()->delete(string $orderId): array
$api->ettn()->fiscalizeManually(string $orderId): EttnData
$api->ettn()->createPrepayment(array $payload): EttnData
$api->ettn()->getPrepayment(string $orderId): EttnData
$api->ettn()->deletePrepayment(string $orderId, string $relationId): array
```

### Nova Poshta eTTN — deprecated (`npEttn()`)

[](#nova-poshta-ettn--deprecated-npettn)

Identical interface to `ettn()` using the `/np/ettn` endpoint. Migrate to `ettn()`.

### AirCheck / PayLink (`payLink()`)

[](#aircheck--paylink-paylink)

```
$api->payLink()->authClient(array $payload): array
$api->payLink()->terminals(...): PaginatedData
$api->payLink()->getTerminal(string $terminalId): PayLinkTerminalData
$api->payLink()->removeTerminal(string $terminalId): array
```

### Taxes (`tax()`)

[](#taxes-tax)

```
$api->tax()->list(): DataCollection   // GET /api/v1/tax — requires X-License-Key
```

### Branches (`branches()`)

[](#branches-branches)

```
$api->branches()->list(?bool $isActive, int $limit, int $offset): PaginatedData
```

### System Status

[](#system-status)

```
$api->status(): array   // GET /status — public health check
```

---

Example: Sell Receipt
---------------------

[](#example-sell-receipt)

```
use Sashalenz\CheckboxApi\CheckboxApi;
use Sashalenz\CheckboxApi\Data\Requests\Receipts\SellReceiptData;
use Sashalenz\CheckboxApi\Data\Requests\Receipts\GoodItemData;
use Sashalenz\CheckboxApi\Data\Requests\Receipts\CashPaymentData;

$receipt = app(CheckboxApi::class)->receipts()->sell(
    new SellReceiptData(
        goods: [
            new GoodItemData(
                good: ['name' => 'Coffee', 'price' => 5000, 'code' => 'COFFEE-001', 'taxes' => []],
                quantity: 1000,
            ),
        ],
        payments: [
            new CashPaymentData(value: 5000),
        ],
    )
);

echo $receipt->fiscal_code;
```

Enums
-----

[](#enums)

EnumValues`ReceiptType``SELL`, `RETURN`, `SERVICE_IN`, `SERVICE_OUT`, `SERVICE_CURRENCY`, `CURRENCY_EXCHANGE`, `PAWNSHOP`, `CASH_WITHDRAWAL``ReceiptStatus``CREATED`, `DONE`, `ERROR`, `CANCELLATION`, `CANCELLED``ShiftStatus``CREATED`, `OPENING`, `OPENED`, `CLOSING`, `CLOSED``PaymentType``CASH`, `CARD`, `CASHLESS``TransactionType``SHIFT_OPEN`, `X_REPORT`, `Z_REPORT`, `PING`, `RECEIPT`, `GO_OFFLINE`, `GO_ONLINE`, …`TransactionStatus``CREATED`, `PENDING`, `SIGNED`, `DELIVERED`, `DONE`, `ERROR`, `CANCELLED`, `OFFLINE``InvoiceStatus``CREATED`, `PROCESSING`, `HOLD`, `SUCCESS`, `FAILURE`, `REVERSED`, `REQUEST_TO_CANCEL`, `EXPIRED``OrderStatus``PENDING`, `SAVING`, `SUCCESS`, `CANCELLED``CustomOrderStatus``NEW`, `IN_WORK`, `APPROVED`, `PREPARING`, `DELIVERING`, `DELIVERED`, `DONE`, `CANCELED`, `TEST`, …`SignatureType``AGENT`, `UKEY`, `DEPOSITSIGN`, `SMARTSIGN`, `CLOUD_SIGNATURE`, `TEST`, …`ServiceOperationType``ADVANCE`, `REINFORCEMENT`, `COLLECTION``GoodsExportExtension``csv`, `excel`, `json``ReportStatus``NEW`, `PENDING`, `ERROR`, `DONE`, `UNKNOWN``EttnProvider``novapost`, `ukrpost``GoodsType``good`, `service``DiscountType``DISCOUNT`, `EXTRA_CHARGE``DiscountMode``PERCENT`, `VALUE``FiscalApiType``FSCO_EC`, `EVPEZ`, `EVPEZ_EXTERNAL``RoundingMode``ROUND_10`, `ROUND_50`, `NO_ROUND`Testing
-------

[](#testing)

```
./vendor/bin/pest
./vendor/bin/phpstan analyse
./vendor/bin/pint
```

API Reference
-------------

[](#api-reference)

Official documentation: ****

OpenAPI spec:

License
-------

[](#license)

MIT

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance86

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

66d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/13202688?v=4)[Oleksandr Petrovskyi](/maintainers/sashalenz)[@sashalenz](https://github.com/sashalenz)

---

Top Contributors

[![sashalenz](https://avatars.githubusercontent.com/u/13202688?v=4)](https://github.com/sashalenz "sashalenz (3 commits)")

---

Tags

laravelcheckboxfiscalizationukraineпрро

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/sashalenz-checkbox-api/health.svg)

```
[![Health](https://phpackages.com/badges/sashalenz-checkbox-api/health.svg)](https://phpackages.com/packages/sashalenz-checkbox-api)
```

###  Alternatives

[defstudio/telegraph

A laravel facade to interact with Telegram Bots

815320.5k3](/packages/defstudio-telegraph)[dedoc/scramble

Automatic generation of API documentation for Laravel applications.

2.1k9.9M87](/packages/dedoc-scramble)[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[simplestats-io/laravel-client

Analytics for Laravel. Track visitors, registrations, and payments. Discover which channels actually drive revenue, not just traffic. Server-side, GDPR compliant, ad-blocker proof.

5019.3k](/packages/simplestats-io-laravel-client)[danestves/laravel-polar

A package to easily integrate your Laravel application with Polar.sh

7918.0k](/packages/danestves-laravel-polar)[stechstudio/laravel-hubspot

A Laravel SDK for the HubSpot CRM Api

3176.9k](/packages/stechstudio-laravel-hubspot)

PHPackages © 2026

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