PHPackages                             ag84ark/colete-online-ro-php - 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. ag84ark/colete-online-ro-php

ActiveLibrary[API Development](/categories/api)

ag84ark/colete-online-ro-php
============================

PHP library to work with colete-online.ro API based on Saloon PHP

1.0.6(2y ago)021MITPHPPHP ^8.1

Since Mar 23Pushed 2y ago1 watchersCompare

[ Source](https://github.com/ag84ark/colete-online-ro-php)[ Packagist](https://packagist.org/packages/ag84ark/colete-online-ro-php)[ RSS](/packages/ag84ark-colete-online-ro-php/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (3)Versions (8)Used By (0)

ColeteOnline.ro API PHP Library
===============================

[](#coleteonlinero-api-php-library)

PHP library to work with colete-online.ro API using Saloon PHP Framework.

This library requires PHP 8.1 or newer.

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

[](#installation)

```
composer require ag84ark/colete-online-ro-php
```

Usage
-----

[](#usage)

```
use Ag84ark\ColeteOnlineRoPhp\ColeteOnline;
use Ag84ark\ColeteOnlineRoPhp\ColeteOnlineApiConnector;

$coleteOnline = new ColeteOnline(
    new ColeteOnlineApiConnector(
        clientId: "your-client-id",
        clientSecret: "your-client-secret",
        staging: false
    )
);
```

Store authenticator for later user
----------------------------------

[](#store-authenticator-for-later-user)

It is recommended to store the authenticator object for later use to avoid re-authenticating on every request.
The expiration time of the authenticator is 2 hour.

```
$authenticator = $coleteOnline->authenticate();
// Or $authenticator = $coleteOnline->getAuthenticator()
// if already authenticated by using any method that requires authentication
$serializeAuth = $authenticator->serialize();
// Store $serializeAuth for later use

// Later
$coleteOnline = new ColeteOnline(
    new ColeteOnlineApiConnector(
        clientId: "your-client-id",
        clientSecret: "your-client-secret",
        staging: false
    ),
    unserialize($serializeAuth)
);
```

Methods
-------

[](#methods)

### Get all available services

[](#get-all-available-services)

```
use Ag84ark\ColeteOnlineRoPhp\DTOs\Service\ServiceItemDTO;

/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\Service\ServiceListResponse $services */
$services = $coleteOnline->getServicesList();
$servicesList = $services->items(); // Array
$servicesListCollection = $services->itemsCollection(); // Illuminate\Support\Collection

$servicesListCollection->each(function (ServiceItemDTO $service) {
    echo $service->name . PHP_EOL;
});
```

### Get user balance

[](#get-user-balance)

```
/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\User\UserBalanceResponse $userBalance */
$userBalance = $coleteOnline->getUserBalance();
echo $userBalance->balance()->amount . PHP_EOL;
echo $userBalance->balance()->bonus . PHP_EOL;
```

### Get the AWB

[](#get-the-awb)

```
/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
$awbDownload = $coleteOnline->getOrderAwb(123456)->saveBodyToFile('awb.pdf');
// Or
$coleteOnline->getOrderAwbAndSaveToFile(123456, 'awb.pdf');
// Or
$stream = $coleteOnline->getOrderAwbStream(123456);
```

### Get order status

[](#get-order-status)

```
use Ag84ark\ColeteOnlineRoPhp\DTOs\Order\OrderStatusHistoryItemDTO;

/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\Order\OrderStatusResponse $orderStatus */
$orderStatus = $coleteOnline->getOrderStatus(123456);

echo $orderStatus->response()->summary->uniqueId . PHP_EOL;
echo $orderStatus->response()->summary->awb . PHP_EOL;

echo $orderStatus->response()
        ->getHistoryCollection()
        ->each(function (OrderStatusHistoryItemDTO $history) {
            echo $history->statusTextParts->ro->name . PHP_EOL;  # "Alocata pentru ridicare"
            echo $history->comment->ro . PHP_EOL;  # "Locatie: Bucuresti; "
        });
```

### Search Country

[](#search-country)

```
use Ag84ark\ColeteOnlineRoPhp\DTOs\Search\CountryDTO;

/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\Search\SearchCountryResponse $countries */
$countries = $coleteOnline->searchCountry('rom');

$countries->itemsCollection()->each(function (CountryDTO $country) {
    echo $country->name . PHP_EOL; # "Romania"
    echo $country->nameRo . PHP_EOL; # "Romania"
    echo $country->isoCode . PHP_EOL; # "RO"
});
```

### Search Location

[](#search-location)

```
use Ag84ark\ColeteOnlineRoPhp\DTOs\Search\LocationDTO;

/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\Search\SearchLocationResponse $locations */
$locations = $coleteOnline->searchLocation('ro', 'ghim');

$locations->itemsCollection()->each(function (LocationDTO $location) {
    echo $location->city . PHP_EOL; # "Ghimbav"
    echo $location->county . PHP_EOL; # "Brasov"
    echo $location->countyCode . PHP_EOL; # "BV"
});
```

### Search City

[](#search-city)

```
use Ag84ark\ColeteOnlineRoPhp\DTOs\Search\CityDTO;

/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\Search\SearchCityResponse $cities */

$cities = $coleteOnline->searchCity('RO', 'Ilfov', 'draga');
// Or
$cities = $coleteOnline->searchCity('ro', 'IF', 'draga', true); // use county code

$cities->itemsCollection()->each(function (CityDTO $city) {
    echo $city->localityName . PHP_EOL; # "Draganesti"
    echo $city->countyName . PHP_EOL; # "Ilfov"
    echo $city->countyCode . PHP_EOL; # "IF"
});
```

### Search Street

[](#search-street)

```
use Ag84ark\ColeteOnlineRoPhp\DTOs\Search\StreetDTO;

/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\Search\SearchStreetResponse $streets */

$streets = $coleteOnline->searchStreet('RO', 'Pitesti', 'Arges', 'gr');
$streets = $coleteOnline->searchStreet('RO', 'Pitesti', 'Arges', 'gr', 300367); // use postal code
// Or
$streets = $coleteOnline->searchStreet("RO", "Pitesti", "AG", "gr", null, true); // don't use postal code
$streets = $coleteOnline->searchStreet('RO', 'Pitesti', 'AG', 'gr', 300367, true); // use county code

$streets->itemsCollection()->each(function (StreetDTO $street) {
    echo $street->name . PHP_EOL; # "Piața Avram Iancu"
    echo $street->highlight . PHP_EOL; # "true|false|null"
});
```

### Search Postal Code

[](#search-postal-code)

```
use Ag84ark\ColeteOnlineRoPhp\DTOs\Search\PostalCodeDTO;

/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\Search\SearchPostalCodeResponse $postalCodes */

$postalCodes = $coleteOnline->searchPostalCode('RO', 'Timis', 'Timisoara', 'Piața Avram Iancu');
// Or
$postalCodes = $coleteOnline->searchPostalCode('RO', 'TM', 'Timisoara', 'Piața Avram Iancu', 1, true); // use county code

$postalCodes->itemsCollection()->each(function (PostalCodeDTO $postalCode) {
    echo $postalCode->code . PHP_EOL; # "300367"
    echo $postalCode->info . PHP_EOL; # "nr. 9-13; 6-T"
    echo $postalCode->street . PHP_EOL; # "Piața Avram Iancu"
});
```

### Get Addresses List

[](#get-addresses-list)

```
use Ag84ark\ColeteOnlineRoPhp\DTOs\Address\AddressItemDTO;

/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\Address\AddressListResponse $addresses */

$addresses = $coleteOnline->getAddressList();

$addresses->itemsCollection()->each(function (AddressItemDTO $addressItem) {
    echo $addressItem->locationId . PHP_EOL; # "123456"
    echo $addressItem->shortNamename . PHP_EOL; # "Home"
    echo $addressItem->address->street . PHP_EOL; # "Piața Avram Iancu"
    echo $addressItem->address->number . PHP_EOL; # "13"

    echo $addressItem->contact->name . PHP_EOL; # "John Doe"
    echo $addressItem->contact->phone . PHP_EOL; # "0723456789"
});
```

### Create Order

[](#create-order)

```
use Ag84ark\ColeteOnlineRoPhp\Types\Order;
use Ag84ark\ColeteOnlineRoPhp\Types\OrderSender;
use Ag84ark\ColeteOnlineRoPhp\Types\OrderRecipient;
use Ag84ark\ColeteOnlineRoPhp\Types\Contact;
use Ag84ark\ColeteOnlineRoPhp\Types\Address;
use Ag84ark\ColeteOnlineRoPhp\Types\Packages;
use Ag84ark\ColeteOnlineRoPhp\Types\PackageTypeEnum;
use Ag84ark\ColeteOnlineRoPhp\Types\PackageItem;
use Ag84ark\ColeteOnlineRoPhp\Types\CurrierService;
use Ag84ark\ColeteOnlineRoPhp\Types\ServiceSelectionTypeEnum;

$orderSender = OrderSender::create(
            contact: Contact(
                name: 'John Doe',
                phone: '0740000000',
                phone2: '',
                email: 'jonh@exmaple.ro',
            ),
            address: new Address(
                countryCode: 'RO',
                postalCode: '123456',
                city: 'Bucuresti',
                county: 'Bucuresti',
                street: 'Str. Matei Basarab',
                number: '45',
            ),
        );

        $orderRecipient = OrderRecipient::create(
            contact: new Contact(
                name: 'Jane Doe',
                phone: '0742222222',
                phone2: '',
                email: 'jane@example.ro',
            ),
            address: new Address(
                countryCode: 'RO',
                postalCode: '233333',
                city: 'Ploiesti',
                county: 'Prahova',
                additionalInfo: 'Bloc 1, Scara A, Etaj 2, Apartament 3',
            ),
        );

        $packages = (new Packages(type: PackageTypeEnum::Box, content: 'Produse'))
                ->addPackageItem(
                    new PackageItem(
                        weight: 2.1,
                        height: 10,
                        width: 15,
                        length: 20,
                    ),
                );

        $extraOptions = (new ExtraOptions())
            ->addInsurance(1000)
            ->addCashRepayment(1000)
            ->addDeclaredValue(1000)
            ->addOpenAtDelivery()
            ->addSaturdayDelivery()
            ->addStatusChangeNotify("https://example.com/status-change-notify");

        $request = new Order(
            sender: $orderSender,
            recipient: $orderRecipient,
            packages: $packages,
            service: new CurrierService(
                selectionType: ServiceSelectionTypeEnum::BestPrice,
            ),
            extraOptions: $extraOptions
        );

/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\Order\CreateOrderResponse $createOrder */
$createOrder = $coleteOnline->createOrder($request);

echo $createOrder->response()->uniqueId . PHP_EOL; # "123456"
echo $createOrder->response()->awb . PHP_EOL; # "ASA123456"
echo $createOrder->response()->curierService->service->id . PHP_EOL; # "6"
echo $createOrder->response()->curierService->service->name . PHP_EOL; # "Domestic Express"
echo $createOrder->response()->curierService->service->courierName . PHP_EOL; # "TNT"
echo $createOrder->response()->curierService->price->total . PHP_EOL; # "23.80"
echo $createOrder->response()->curierService->price->noVat . PHP_EOL; # "20.00"
```

### Get Order Pricing

[](#get-order-pricing)

```
use Ag84ark\ColeteOnlineRoPhp\DTOs\Order\OrderCurrierServiceDTO;

use Ag84ark\ColeteOnlineRoPhp\Types\OrderPricing;
use Ag84ark\ColeteOnlineRoPhp\Types\OrderSender;
use Ag84ark\ColeteOnlineRoPhp\Types\OrderRecipient;
use Ag84ark\ColeteOnlineRoPhp\Types\Contact;
use Ag84ark\ColeteOnlineRoPhp\Types\Address;
use Ag84ark\ColeteOnlineRoPhp\Types\Packages;
use Ag84ark\ColeteOnlineRoPhp\Types\PackageTypeEnum;
use Ag84ark\ColeteOnlineRoPhp\Types\PackageItem;
use Ag84ark\ColeteOnlineRoPhp\Types\CurrierService;
use Ag84ark\ColeteOnlineRoPhp\Types\ServiceSelectionTypeEnum;
use Ag84ark\ColeteOnlineRoPhp\Types\ExtraOptions;

$orderSender = OrderSender::create(
            contact: Contact(
                name: 'John Doe',
                phone: '0740000000',
                phone2: '',
                email: 'jonh@exmaple.ro',
            ),
            address: new Address(
                countryCode: 'RO',
                postalCode: '123456',
                city: 'Bucuresti',
                county: 'Bucuresti',
                street: 'Str. Matei Basarab',
                number: '45',
            ),
        );

        $orderRecipient = OrderRecipient::create(
            contact: new Contact(
                name: 'Jane Doe',
                phone: '0742222222',
                phone2: '',
                email: 'jane@example.ro',
            ),
            address: new Address(
                countryCode: 'RO',
                postalCode: '233333',
                city: 'Ploiesti',
                county: 'Prahova',
                additionalInfo: 'Bloc 1, Scara A, Etaj 2, Apartament 3',
            ),
        );

        $extraOptions = (new ExtraOptions())
            ->addInsurance(1000)
            ->addCashRepayment(1000)
            ->addDeclaredValue(1000)
            ->addOpenAtDelivery()
            ->addSaturdayDelivery()
            ->addStatusChangeNotify("https://example.com/status-change-notify");

        $request = new OrderPricing(
            sender: $orderSender,
            recipient: $orderRecipient,
            packages: (new Packages(type: PackageTypeEnum::Box, content: 'Produse'))
                ->addPackageItem(
                    new PackageItem(
                        weight: 2.1,
                        height: 10,
                        width: 15,
                        length: 20,
                    ),
                ),
            service: new CurrierService(
                selectionType: ServiceSelectionTypeEnum::BestPrice,
            ),
            extraOptions: $extraOptions
        );

/** @var \Ag84ark\ColeteOnlineRoPhp\ColeteOnline $coleteOnline */
/** @var \Ag84ark\ColeteOnlineRoPhp\Responses\Order\OrderPricingResponse $orderPricing */
$orderPricing = $coleteOnline->getOrderPricing($request);

echo $orderPricing->response()->selected->service->id . PHP_EOL; # "6"
echo $orderPricing->response()->selected->service->name . PHP_EOL; # "Domestic Express"
echo $orderPricing->response()->selected->service->courierName . PHP_EOL; # "TNT"
echo $orderPricing->response()->selected->price->total . PHP_EOL; # "23.80"
echo $orderPricing->response()->selected->price->noVat . PHP_EOL; # "20.00"

$orderPricing->response()->getCurriersList()->each(function (OrderCurrierServiceDTO $currier) {
    echo $currier->service->id . PHP_EOL; # "6"
    echo $currier->service->name . PHP_EOL; # "Domestic Express"
    echo $currier->service->courierName . PHP_EOL; # "TNT"
    echo $currier->price->total . PHP_EOL; # "23.80"
    echo $currier->price->noVat . PHP_EOL; # "20.00"
});
```

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

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

Every ~0 days

Total

7

Last Release

829d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10678506?v=4)[Cojocaru George](/maintainers/ag84ark)[@ag84ark](https://github.com/ag84ark)

---

Top Contributors

[![ag84ark](https://avatars.githubusercontent.com/u/10678506?v=4)](https://github.com/ag84ark "ag84ark (9 commits)")

---

Tags

colete-onlinecolete-online-rophpphp8saloonphpshipping-apishipping-module

###  Code Quality

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/ag84ark-colete-online-ro-php/health.svg)

```
[![Health](https://phpackages.com/badges/ag84ark-colete-online-ro-php/health.svg)](https://phpackages.com/packages/ag84ark-colete-online-ro-php)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.0k](/packages/craftcms-cms)[saloonphp/laravel-plugin

The official Laravel plugin for Saloon

807.1M198](/packages/saloonphp-laravel-plugin)[whatsdiff/whatsdiff

See what's changed in your project's dependencies

771.2k](/packages/whatsdiff-whatsdiff)[myoutdeskllc/salesforce-php

salesforce library for php8+

1579.5k](/packages/myoutdeskllc-salesforce-php)[icawebdesign/hibp-php

PHP library for accessing the Have I Been Pwned API.

2549.8k2](/packages/icawebdesign-hibp-php)[codebar-ag/laravel-docuware

DocuWare integration with Laravel

1123.7k](/packages/codebar-ag-laravel-docuware)

PHPackages © 2026

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