PHPackages                             jakuborava/affilbox-client - 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. jakuborava/affilbox-client

ActiveLibrary[API Development](/categories/api)

jakuborava/affilbox-client
==========================

API client for Affilbox

1.0.0(2mo ago)06MITPHPPHP ^8.3CI passing

Since Feb 26Pushed 2mo agoCompare

[ Source](https://github.com/jakuborava/affilbox-client)[ Packagist](https://packagist.org/packages/jakuborava/affilbox-client)[ Docs](https://github.com/jakuborava/affilbox-client)[ GitHub Sponsors](https://github.com/JakubOrava)[ RSS](/packages/jakuborava-affilbox-client/feed)WikiDiscussions main Synced 1mo ago

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

Affilbox Client for Laravel
===========================

[](#affilbox-client-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/b17e1f6dcfefb647dba60d4726c9215a70feb30f479bf106e4e16840d3e28fcf/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a616b75626f726176612f616666696c626f782d636c69656e742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jakuborava/affilbox-client)[![GitHub Tests Action Status](https://camo.githubusercontent.com/a84aba682e4e6bfec0b92dc430bbbbe37194afd18529296157d5511be5f22930/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6a616b75626f726176612f616666696c626f782d636c69656e742f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/jakuborava/affilbox-client/actions?query=workflow%3Arun-tests+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/ce281c76f74503f7967acf0447669e331d37de8ef6e0e82e664f3cd06fedc49b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a616b75626f726176612f616666696c626f782d636c69656e742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jakuborava/affilbox-client)

A Laravel package providing a fluent API client for the [Affilbox](https://www.affilbox.cz) affiliate marketing platform. Supports PHP 8.3+ and Laravel 11/12.

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

[](#installation)

```
composer require jakuborava/affilbox-client
```

Publish the config file:

```
php artisan vendor:publish --tag="affilbox-client-config"
```

Add your credentials to `.env`:

```
AFFILBOX_INSTANCE_NUMBER=your-instance-number
AFFILBOX_API_KEY=your-api-key
```

Usage
-----

[](#usage)

You can use the Facade or inject the client via dependency injection:

```
use JakubOrava\AffilboxClient\Facades\AffilboxClient;

// Facade
$dashboard = AffilboxClient::dashboard()->get();

// Dependency injection
use JakubOrava\AffilboxClient\AffilboxClient;

public function __construct(private AffilboxClient $client) {}

$dashboard = $this->client->dashboard()->get();
```

You can also pass credentials directly:

```
$client = new AffilboxClient('instance-number', 'api-key');
```

### Test Connection

[](#test-connection)

```
$client->test()->ping();             // Returns "pong"
$client->test()->checkCredentials(); // Returns "ok"
```

### Dashboard

[](#dashboard)

```
$dashboard = $client->dashboard()->get(); // DashboardDTO

$dashboard->clicks;
$dashboard->conversions;
$dashboard->commission;
$dashboard->pending;
$dashboard->payment;
$dashboard->total;
```

### Instance

[](#instance)

```
$instance = $client->instance()->get(); // InstanceDTO

$instance->domain;
$instance->currency;
$instance->locked;
$instance->terminated;
$instance->expire; // Carbon|false
```

### Campaigns

[](#campaigns)

```
$campaigns = $client->campaigns()->list(); // Collection

foreach ($campaigns as $campaign) {
    $campaign->id;
    $campaign->name;
    $campaign->active;
    $campaign->commission;
}
```

### Conversions

[](#conversions)

**List conversions:**

```
use JakubOrava\AffilboxClient\Requests\ConversionsListRequest;
use JakubOrava\AffilboxClient\Enums\ConversionState;
use Carbon\Carbon;

// All conversions
$conversions = $client->conversions()->list();

// Filtered
$request = (new ConversionsListRequest)
    ->state(ConversionState::Authorized)
    ->dateFrom(Carbon::parse('2024-01-01'))
    ->dateTo(Carbon::parse('2024-12-31'))
    ->campaignId(42)
    ->coupon('SUMMER');

$conversions = $client->conversions()->list($request); // Collection
```

**Add a conversion:**

```
use JakubOrava\AffilboxClient\Requests\AddConversionRequest;

$request = new AddConversionRequest(
    campaignId: 42,
    userId: 'partner@example.com',
    createDate: Carbon::now(),
    value: 200.00,
);

// Optional fluent methods
$request->sales(150.00)
    ->transactionId('TXN-123')
    ->channel('web')
    ->coupon('SUMMER');

$client->conversions()->add($request);
```

**Change a conversion:**

```
use JakubOrava\AffilboxClient\Requests\ChangeConversionRequest;

$request = (new ChangeConversionRequest(
    conversionId: 23,
    state: ConversionState::Authorized,
))
    ->value(123.46)
    ->sales(100.00)
    ->currency('CZK')
    ->comment('Approved');

$client->conversions()->change($request);
```

### Partners

[](#partners)

**List partners:**

```
use JakubOrava\AffilboxClient\Requests\PartnersListRequest;

// All partners
$partners = $client->partners()->list();

// Filtered
$request = (new PartnersListRequest)
    ->registerFrom(Carbon::parse('2024-01-01'))
    ->registerTo(Carbon::parse('2024-12-31'))
    ->lastLoginFrom(Carbon::parse('2024-06-01'));

$partners = $client->partners()->list($request); // Collection

foreach ($partners as $partner) {
    $partner->person->name;
    $partner->person->email;
    $partner->company->name;
    $partner->address->city;
}
```

**Add a partner:**

```
use JakubOrava\AffilboxClient\Requests\AddPartnerRequest;

$request = (new AddPartnerRequest('partner@example.com'))
    ->name('Jan')
    ->surname('Novák')
    ->phone('+420608100100')
    ->street('Národní 12')
    ->city('Praha')
    ->postCode('10000')
    ->country('CZ')
    ->company('Firma s.r.o.')
    ->ic('12345678')
    ->dic('CZ12345678');

$response = $client->partners()->add($request); // AddPartnerResponseDTO

$response->instance;
$response->url;
$response->apiKey;
$response->login;
$response->password;
```

### Invoices

[](#invoices)

**List invoices:**

```
$invoices = $client->invoices()->list(); // Collection

foreach ($invoices as $invoice) {
    $invoice->id;
    $invoice->vs;
    $invoice->paid;
    $invoice->issueDate;  // Carbon
    $invoice->dueDate;    // Carbon
    $invoice->supplier;   // SupplierDTO
    $invoice->customer;   // CustomerDTO

    foreach ($invoice->items as $item) {
        $item->item;
        $item->amount;
        $item->currency;
    }
}
```

**Request billing:**

```
$status = $client->invoices()->billingRequest();
```

**Upload an invoice:**

```
use JakubOrava\AffilboxClient\Requests\UploadInvoiceRequest;

$request = new UploadInvoiceRequest(
    invoiceId: 24,
    issuedOn: Carbon::parse('2024-10-09'),
    due: Carbon::parse('2024-10-19'),
    vs: 202410045,
    file: base64_encode(file_get_contents('invoice.pdf')),
);

$invoice = $client->invoices()->upload($request); // InvoiceDTO
```

DTOs
----

[](#dtos)

All DTOs use readonly properties. Dates are `Carbon` instances.

DTOKey Properties`DashboardDTO``clicks`, `conversions`, `commission`, `pending`, `payment`, `total``InstanceDTO``domain`, `currency`, `paymentMinimum`, `licence`, `locked`, `terminated`, `expire``CampaignDTO``id`, `name`, `active`, `commission`, `fixCommission`, `cookieValidity`, `trackingCode`, `conversionCode``ConversionDTO``id`, `createDate`, `confirmDate`, `campaignName`, `value`, `sales`, `state`, `transactionId`, `coupon``PartnerDTO``person` (PersonDTO), `address` (AddressDTO), `company` (CompanyDTO)`InvoiceDTO``id`, `created`, `issueDate`, `dueDate`, `supplier`, `customer`, `vs`, `paid`, `items``AddPartnerResponseDTO``instance`, `url`, `apiKey`, `login`, `password`Enums
-----

[](#enums)

### ConversionState

[](#conversionstate)

CaseValue`Waiting``waiting``Rejection``rejection``Authorized``authorized``Invoiced``invoiced`Error Handling
--------------

[](#error-handling)

All exceptions extend `AffilboxClientException`, so you can catch them individually or as a group:

```
use JakubOrava\AffilboxClient\Exceptions\AffilboxClientException;
use JakubOrava\AffilboxClient\Exceptions\AuthenticationException;
use JakubOrava\AffilboxClient\Exceptions\ValidationException;
use JakubOrava\AffilboxClient\Exceptions\ApiErrorException;
use JakubOrava\AffilboxClient\Exceptions\UnexpectedResponseException;

try {
    $client->conversions()->list();
} catch (AuthenticationException $e) {
    // 401 - Invalid credentials
} catch (ValidationException $e) {
    // 422 - Validation error
} catch (ApiErrorException $e) {
    // Server error or API error status
} catch (UnexpectedResponseException $e) {
    // Non-array / malformed response
} catch (AffilboxClientException $e) {
    // Catch-all for any client exception
}
```

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Credits
-------

[](#credits)

- [Jakub Orava](https://github.com/jakuborava)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance86

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

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

75d ago

### Community

Maintainers

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

---

Top Contributors

[![jakuborava](https://avatars.githubusercontent.com/u/9501966?v=4)](https://github.com/jakuborava "jakuborava (8 commits)")

---

Tags

laraveljakuboravaaffilbox-client

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/jakuborava-affilbox-client/health.svg)

```
[![Health](https://phpackages.com/badges/jakuborava-affilbox-client/health.svg)](https://phpackages.com/packages/jakuborava-affilbox-client)
```

###  Alternatives

[dedoc/scramble

Automatic generation of API documentation for Laravel applications.

2.0k7.8M57](/packages/dedoc-scramble)[scalar/laravel

Render your OpenAPI-based API reference

6183.9k2](/packages/scalar-laravel)[ryangjchandler/bearer

Minimalistic token-based authentication for Laravel API endpoints.

8129.8k](/packages/ryangjchandler-bearer)[combindma/laravel-facebook-pixel

Meta pixel integration for Laravel

4956.9k](/packages/combindma-laravel-facebook-pixel)[stechstudio/laravel-hubspot

A Laravel SDK for the HubSpot CRM Api

2971.0k](/packages/stechstudio-laravel-hubspot)[njoguamos/laravel-plausible

A laravel package for interacting with plausible analytics api.

208.8k](/packages/njoguamos-laravel-plausible)

PHPackages © 2026

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