PHPackages                             gdinko/speedy - 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. gdinko/speedy

ActiveLibrary

gdinko/speedy
=============

Laravel Speedy API Wrapper

v1.0.15(10mo ago)206.4k↓42.7%8MITPHPPHP ^7.4|^8.0|^8.1|^8.2|^8.3CI passing

Since May 18Pushed 10mo ago1 watchersCompare

[ Source](https://github.com/gdinko/speedy)[ Packagist](https://packagist.org/packages/gdinko/speedy)[ Docs](https://github.com/gdinko/speedy)[ RSS](/packages/gdinko-speedy/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (11)Versions (16)Used By (0)

Laravel Speedy API Wrapper
==========================

[](#laravel-speedy-api-wrapper)

[![Latest Version on Packagist](https://camo.githubusercontent.com/7feb8c012f87bb74fc08987832656a9bbd13fe85be6b711f2c135bde550ec7e1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6764696e6b6f2f7370656564792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/gdinko/speedy)[![Total Downloads](https://camo.githubusercontent.com/dd2e68d62f95bff1bc1d71d8917b9e104022c1a2bacaa4d48dbd1390f5c3efd2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6764696e6b6f2f7370656564792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/gdinko/speedy)

[Speedy JSON API Documentation](https://services.speedy.bg/api/api_examples.html)

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

[](#installation)

You can install the package via composer:

```
composer require gdinko/speedy
```

If you plan to use database for storing nomenclatures:

```
php artisan migrate
```

If you need to export configuration file:

```
php artisan vendor:publish --tag=speedy-config
```

If you need to export migrations:

```
php artisan vendor:publish --tag=speedy-migrations
```

If you need to export models:

```
php artisan vendor:publish --tag=speedy-models
```

If you need to export commands:

```
php artisan vendor:publish --tag=speedy-commands
```

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

[](#configuration)

```
SPEEDY_API_USER= #Get this from Speedy
SPEEDY_API_PASS= #Get this from Speedy
SPEEDY_API_BASE_URL= #default=https://api.speedy.bg/v1/
SPEEDY_API_TIMEOUT= #default=5
```

Usage
-----

[](#usage)

Runtime Setup

```
Speedy::setAccount('user', 'pass');
Speedy::setBaseUrl('endpoint');
Speedy::setTimeout(99);

Speedy::addAccountToStore('AccountUser', 'AccountPass');
Speedy::getAccountFromStore('AccountUser');
Speedy::setAccountFromStore('AccountUser');
```

Multiple Account Support In AppServiceProvider add accounts in boot method

```
public function boot()
{
    Speedy::addAccountToStore(
        'AccountUser',
        'AccountPass'
    );

    Speedy::addAccountToStore(
        'AccountUser_XXX',
        'AccountPass_XXX'
    );
}
```

Methods

```
use Gdinko\Speedy\Facades\Speedy;

//Shipment Service
Speedy::createShipment(Hydrator $hydrator): array
Speedy::cancelShipment(Hydrator $hydrator): array
Speedy::addParcel(Hydrator $hydrator): array
Speedy::finalizePendingShipment(Hydrator $hydrator): array
Speedy::shipmentInformation(Hydrator $hydrator): array
Speedy::secondaryShipments($shipmentId, Hydrator $hydrator): array
Speedy::updateShipment(Hydrator $hydrator): array
Speedy::updateShipmentProperties(Hydrator $hydrator): array
Speedy::findParcelsByReference(Hydrator $hydrator): array
Speedy::handoverToCourier(Hydrator $hydrator): array

//Print Service
Speedy::print(Hydrator $hydrator): string
Speedy::extendedPrint(Hydrator $hydrator): array
Speedy::labelInfo(Hydrator $hydrator): array
Speedy::printVoucher(Hydrator $hydrator): string

//Track And Trace Service
Speedy::track(Hydrator $hydrator): array
Speedy::bulkTrackingDataFiles(Hydrator $hydrator): array

//Pickup Service
Speedy::pickup(Hydrator $hydrator): array
Speedy::pickupTerms(Hydrator $hydrator): array

//Location Service
Speedy::getCountry($id, Hydrator $hydrator): array
Speedy::findCountry(Hydrator $hydrator): array
Speedy::getAllCountries(Hydrator $hydrator): object
Speedy::getState($id, Hydrator $hydrator): array
Speedy::findState(Hydrator $hydrator): array
Speedy::getAllStates($countryId, Hydrator $hydrator): object
Speedy::getSite($id, Hydrator $hydrator): array
Speedy::findSite(Hydrator $hydrator): array
Speedy::getAllSites($countryId, Hydrator $hydrator): object
Speedy::getStreet($id, Hydrator $hydrator): array
Speedy::findStreet(Hydrator $hydrator): array
Speedy::getAllStreets($countryId, Hydrator $hydrator): object
Speedy::getComplex($id, Hydrator $hydrator): array
Speedy::findComplex(Hydrator $hydrator): array
Speedy::getAllComplexes($countryId, Hydrator $hydrator): object
Speedy::findBlock(Hydrator $hydrator): array
Speedy::getPoi($id, Hydrator $hydrator): array
Speedy::findPoi(Hydrator $hydrator): array
Speedy::getAllPoi($countryId, Hydrator $hydrator): object
Speedy::getAllPostcodes($countryId, Hydrator $hydrator): object
Speedy::getOffice($id, Hydrator $hydrator): array
Speedy::findOffice(Hydrator $hydrator): array

//Calculation Service
Speedy::calculate(Hydrator $hydrator): array

//Client Service
Speedy::getClient($id, Hydrator $hydrator): array
Speedy::getContractClients(Hydrator $hydrator): array
Speedy::createContact(Hydrator $hydrator): array
Speedy::getContactByExternalId($id, Hydrator $hydrator): array
Speedy::getOwnClientId(Hydrator $hydrator): array

//Validation Service
Speedy::validateAddress(Hydrator $hydrator): array
Speedy::validatePostcode(Hydrator $hydrator): array
Speedy::validatePhone(Hydrator $hydrator): array
Speedy::validateShipment(Hydrator $hydrator): array

//Services Service
Speedy::services(Hydrator $hydrator): array
Speedy::destinationServices(Hydrator $hydrator): array

//Payments Service
Speedy::payments(Hydrator $hydrator): array
```

Commands

```
#get payments (use -h to view options)
php artisan speedy:get-payments

#get speedy api status (use -h to view options)
php artisan speedy:api-status

#sync countries with database  (use -h to view options)
php artisan speedy:sync-countries

#sync cities with database  (use -h to view options)
php artisan speedy:sync-cities

#create cities map with other carriers in database  (use -h to view options)
php artisan speedy:map-cities

#sync offices with database  (use -h to view options)
php artisan speedy:sync-offices

#track parcels (use -h to view options)
php artisan speedy:track
```

Models

```
CarrierSpeedyCountry
CarrierSpeedyCity
CarrierSpeedyOffice
CarrierSpeedyTracking
CarrierSpeedyPayment
CarrierSpeedyApiStatus
CarrierCityMap
```

Events

```
CarrierSpeedyTrackingEvent
CarrierSpeedyPaymentEvent
```

Parcels Tracking
----------------

[](#parcels-tracking)

1. Subscribe to tracking event, you will recieve last tracking info, if tracking command is schduled

```
Event::listen(function (CarrierSpeedyTrackingEvent $event) {
    echo $event->account;
    dd($event->tracking);
});
```

2. Before use of tracking command you need to create your own command and define setUp method

```
php artisan make:command TrackCarrierSpeedy
```

3. In app/Console/Commands/TrackCarrierSpeedy define your logic for parcels to be tracked

```
use Gdinko\Speedy\Commands\TrackCarrierSpeedyBase;

class TrackCarrierSpeedySetup extends TrackCarrierSpeedyBase
{
    protected function setup()
    {
        //define parcel selection logic here
        // $this->parcels = [];
    }
}
```

4. Use the command

```
php artisan speedy:track
```

Examples
--------

[](#examples)

Subscribe to payment event

```
Event::listen(function (CarrierSpeedyPaymentEvent $event) {
    echo $event->account;
    dd($event->payment);
});
```

Check for payments from today

```
php artisan speedy:get-payments
```

Get All Countries

```
use Gdinko\Speedy\Facades\Speedy;
use Gdinko\Speedy\Hydrators\Request;

dd(
    Speedy::getAllCountries(
        new Request()
    )->toArray()
);
```

Find Country

```
use Gdinko\Speedy\Facades\Speedy;
use Gdinko\Speedy\Hydrators\Request;

dd(
    Speedy::findCountry(
        new Request([
            'name' => 'bulgaria'
        ])
    )
);
```

### Testing

[](#testing)

```
composer test
```

### Changelog

[](#changelog)

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

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

### Security

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Dinko Georgiev](https://github.com/gdinko)
- [silabg.com](https://www.silabg.com/) ❤️
- [All Contributors](../../contributors)

License
-------

[](#license)

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

###  Health Score

47

—

FairBetter than 94% of packages

Maintenance54

Moderate activity, may be stable

Popularity35

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 95.8% 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 ~82 days

Recently: every ~245 days

Total

15

Last Release

312d ago

PHP version history (3 changes)v1.0.0PHP ^7.4|^8.0

v1.0.13PHP ^7.4|^8.0|^8.1

v1.0.14PHP ^7.4|^8.0|^8.1|^8.2|^8.3

### Community

Maintainers

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

---

Top Contributors

[![gdinko](https://avatars.githubusercontent.com/u/2735905?v=4)](https://github.com/gdinko "gdinko (46 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")[![KKrusteF](https://avatars.githubusercontent.com/u/34939343?v=4)](https://github.com/KKrusteF "KKrusteF (1 commits)")

---

Tags

laravelspeedygdinkospeedy laravel

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/gdinko-speedy/health.svg)

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

###  Alternatives

[spatie/laravel-health

Monitor the health of a Laravel application

85810.0M83](/packages/spatie-laravel-health)[s-ichikawa/laravel-sendgrid-driver

This library adds a 'sendgrid' mail driver to Laravel.

4139.3M1](/packages/s-ichikawa-laravel-sendgrid-driver)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2371.3M11](/packages/laravel-notification-channels-discord)[tzsk/sms

A robust and unified SMS gateway integration package for Laravel, supporting multiple providers.

320244.3k6](/packages/tzsk-sms)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)[truckersmp/steam-socialite

Laravel Socialite provider for Steam OpenID.

1516.7k](/packages/truckersmp-steam-socialite)

PHPackages © 2026

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