PHPackages                             altwebdesign/sameday-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. [Utility &amp; Helpers](/categories/utility)
4. /
5. altwebdesign/sameday-php-sdk

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

altwebdesign/sameday-php-sdk
============================

Sameday Courier SDK for PHP — fork with countryCode support for counties and cities geolocation

v2.4.2(3mo ago)06↓90.9%MITPHPPHP ^5.6|^7.0|^8.0

Since Apr 3Pushed 3mo agoCompare

[ Source](https://github.com/altwebdesign/sameday-php-sdk)[ Packagist](https://packagist.org/packages/altwebdesign/sameday-php-sdk)[ Docs](https://github.com/altwebdesign/sameday-php-sdk)[ RSS](/packages/altwebdesign-sameday-php-sdk/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

Sameday Courier SDK for PHP
===========================

[](#sameday-courier-sdk-for-php)

[![Build Status](https://github.com/sameday-courier/php-sdk/actions/workflows/tests.yml/badge.svg)](https://github.com/sameday-courier/php-sdk/actions/workflows/tests.yml)[![Latest Stable Version](https://camo.githubusercontent.com/785044cafa12ff0dabba904510e095cda8bce43a3b01c6b1b43bf9634e4650d7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73616d656461792d636f75726965722f7068702d73646b2e737667)](https://packagist.org/packages/sameday-courier/php-sdk)

This repository contains the open source PHP SDK that allows you to access the Sameday Courier Platform from your PHP app. It was inspired by Facebook PHP-SDK.

> **This fork** adds `countryCode` support to `SamedayGetCountiesRequest` and `SamedayGetCitiesRequest`, and increases the default `$countPerPage` from `50` to `500`. This allows users with a Romanian Sameday account to query geolocation data for other countries (e.g. Hungary) without switching API hosts. Maintained by [AltWeb](https://altweb.ro).

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

[](#installation)

Install this fork with [Composer](https://getcomposer.org/):

```
composer require altwebdesign/sameday-php-sdk
```

> This is a fork of [sameday-courier/php-sdk](https://github.com/sameday-courier/php-sdk) with added `countryCode` support. All original features are preserved.

Usage
-----

[](#usage)

> **Note:** This version of the Sameday SDK for PHP requires PHP 5.4 or greater.

Simple example to get available pickup points and services for a client, request a new AWB and download the PDF for it.

```
require_once __DIR__ . '/vendor/autoload.php'; // Change path as needed.

// Initialization. Change user and password as needed for your account. For testing purposes (also implies different user/password) set a third parameter to 'https://sameday-api.demo.zitec.com'.
$samedayClient = new \Sameday\SamedayClient('user', 'password');
$sameday = new \Sameday\Sameday($samedayClient);

// Get list of available pickup points for client.
$pickupPoints = $sameday->getPickupPoints(new \Sameday\Requests\SamedayGetPickupPointsRequest());
// Use first found pickup point id. These ids are different for DEMO and PROD environments. This id can be cached on your application.
$pickupPointId = $pickupPoints->getPickupPoints()[0]->getId();

// Get list of available services for client.
$services = $sameday->getServices(new \Sameday\Requests\SamedayGetServicesRequest());
// Use first service id. These ids are different for DEMO and PROD environments. This id can be cached on your application.
// This is just for example purpose. Choose the right service for your app.
// For instance if requesting with 2H service (delivery in 2 hours) and cities are different (pickup point city and recipient city) then the validation will fail.
$serviceId = $services->getServices()[0]->getId();

try {
    $awb = $sameday->postAwb(new \Sameday\Requests\SamedayPostAwbRequest(
        $pickupPointId,
        null, // Contact person id can be left to NULL and default will be used.
        new \Sameday\Objects\Types\PackageType(\Sameday\Objects\Types\PackageType::PARCEL),
        [
            // This will generate an AWB expedition with 2 parcels (packages). Only the $weight is mandatory.
            new \Sameday\Objects\ParcelDimensionsObject(0.5),
            new \Sameday\Objects\ParcelDimensionsObject(3, 15, 28, 67)
        ],
        $serviceId,
        new \Sameday\Objects\Types\AwbPaymentType(\Sameday\Objects\Types\AwbPaymentType::CLIENT), // Who pays for the AWB. CLIENT is the only allowed value.
        new \Sameday\Objects\PostAwb\Request\AwbRecipientEntityObject('Huedin', 'Cluj', 'str. Otesani', 'Nume Destinatar', '0700111111', 'destinatar.colet@gmail.com', new \Sameday\Objects\PostAwb\Request\CompanyEntityObject('nume companie SRL')), // AWB recipient. Please note that CompanyEntityObject is optional if the recipient is not company.
        0, // Insured value.
        100 // Cash on delivery value. Can be 0 if the payment was made online.
        // Other parameters may follow, see https://github.com/sameday-courier/php-sdk/blob/master/docs/reference/SamedayPostAwbRequest.md
    ));
} catch (\Sameday\Exceptions\SamedayBadRequestException $e) {
    // When request fails validation. Show the list of validation errors.
    var_dump($e->getErrors());
    exit;
} // Other exceptions may be thrown, see https://github.com/sameday-courier/php-sdk/blob/master/docs/reference.md#core-exceptions

$pdf = $sameday->getAwbPdf(new \Sameday\Requests\SamedayGetAwbPdfRequest($awb->getAwbNumber(), new \Sameday\Objects\Types\AwbPdfType(\Sameday\Objects\Types\AwbPdfType::A6)));
echo $pdf->getPdf();
```

Complete documentation, installation instructions, and examples are available [here](docs/).

---

Geolocation — Counties &amp; Cities with `countryCode` Support
--------------------------------------------------------------

[](#geolocation--counties--cities-with-countrycode-support)

> This feature is available in this fork: [altwebdesign/sameday-php-sdk](https://github.com/altwebdesign/sameday-php-sdk)

By default the Sameday API returns Romanian counties and cities. This fork adds an optional `countryCode` parameter to both `SamedayGetCountiesRequest` and `SamedayGetCitiesRequest`, allowing you to fetch geolocation data for other supported countries (e.g. `'HU'` for Hungary) using your existing Romanian account credentials, without needing to switch to a different API host.

### Get Counties (PHP)

[](#get-counties-php)

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

$samedayClient = new \Sameday\SamedayClient('user', 'password');
$sameday = new \Sameday\Sameday($samedayClient);

// Get Romanian counties (default behaviour — countryCode omitted)
$roCounties = $sameday->getCounties(new \Sameday\Requests\SamedayGetCountiesRequest(''));

// Get Hungarian counties
$huCounties = $sameday->getCounties(new \Sameday\Requests\SamedayGetCountiesRequest('', 'HU'));

foreach ($huCounties->getCounties() as $county) {
    echo $county->getId() . ' — ' . $county->getName() . PHP_EOL;
}
```

### Get Cities by County (PHP)

[](#get-cities-by-county-php)

```
// Get cities for a Romanian county (default)
$roCities = $sameday->getCities(new \Sameday\Requests\SamedayGetCitiesRequest($countyId));

// Get cities for a Hungarian county
// Constructor: ($countyId, $name, $postalCode, $countryCode)
$huCities = $sameday->getCities(new \Sameday\Requests\SamedayGetCitiesRequest($countyId, '', null, 'HU'));

foreach ($huCities->getCities() as $city) {
    echo $city->getId() . ' — ' . $city->getName() . PHP_EOL;
}
```

### Using Setters

[](#using-setters)

You can also set the country code after instantiation:

```
$request = new \Sameday\Requests\SamedayGetCountiesRequest('');
$request->setCountryCode('HU');

$counties = $sameday->getCounties($request);
```

---

Laravel Examples
----------------

[](#laravel-examples)

### Setup

[](#setup)

```
use Sameday\Sameday;
use Sameday\SamedayClient;
use Sameday\Requests\SamedayGetCountiesRequest;
use Sameday\Requests\SamedayGetCitiesRequest;

$sameday = new Sameday(
    new SamedayClient(
        env('SAMEDAY_USER'),
        env('SAMEDAY_PASSWORD')
    )
);
```

### Get Hungarian Counties (with Cache)

[](#get-hungarian-counties-with-cache)

```
public function getCounties()
{
    $data = \Cache::rememberForever('sameday_counties_hu', function () use ($sameday) {
        $counties = $sameday->getCounties(new SamedayGetCountiesRequest('', 'HU'));
        return json_decode($counties->getRawResponse()->getBody())->data;
    });

    return response()->json([
        'success' => 1,
        'counties' => $data,
    ]);
}
```

### Get Hungarian Cities by County (with Cache)

[](#get-hungarian-cities-by-county-with-cache)

```
public function getCities($countyId)
{
    $data = \Cache::rememberForever('sameday_hu_cities_' . $countyId, function () use ($sameday, $countyId) {
        $cities = $sameday->getCities(new SamedayGetCitiesRequest($countyId, '', null, 'HU'));
        return json_decode($cities->getRawResponse()->getBody())->data;
    });

    return response()->json([
        'success' => 1,
        'cities' => $data,
    ]);
}
```

> **Tip:** Results are cached forever (`rememberForever`) since county and city data rarely changes. Use a versioned cache key (e.g. `sameday_counties_hu_v2`) if you ever need to bust the cache manually.

### Pagination Note

[](#pagination-note)

This fork increases the default `$countPerPage` from `50` to `500` in `SamedayRequestPaginationTrait`. This ensures all cities in a county are returned in a single API call, which is important for countries like Hungary where some counties have more than 50 cities.

---

Tests
-----

[](#tests)

1. [Composer](https://getcomposer.org/) is a prerequisite for running the tests. Install composer globally, then run `composer install` to install required files.
2. The tests can be executed by running this command from the root directory:

```
$ ./vendor/bin/phpunit
```

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

[](#contributing)

Please see [CONTRIBUTING](https://github.com/sameday-courier/php-sdk/blob/master/CONTRIBUTING.md) for details.

License
-------

[](#license)

Please see the [license file](https://github.com/sameday-courier/php-sdk/blob/master/LICENSE) for more information.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance82

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

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

90d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1702671a8b9b078d149ae77ef49b691e188db53c19d0c356eb222ba3be1c4d96?d=identicon)[altwebdesign](/maintainers/altwebdesign)

---

Top Contributors

[![danut007ro](https://avatars.githubusercontent.com/u/1083134?v=4)](https://github.com/danut007ro "danut007ro (80 commits)")[![Soptareanu](https://avatars.githubusercontent.com/u/11008987?v=4)](https://github.com/Soptareanu "Soptareanu (16 commits)")[![pathristikon](https://avatars.githubusercontent.com/u/37498671?v=4)](https://github.com/pathristikon "pathristikon (4 commits)")[![adriangavanescu](https://avatars.githubusercontent.com/u/66299582?v=4)](https://github.com/adriangavanescu "adriangavanescu (1 commits)")

---

Tags

sdkgeolocationcouriersamedayhungary

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/altwebdesign-sameday-php-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/altwebdesign-sameday-php-sdk/health.svg)](https://phpackages.com/packages/altwebdesign-sameday-php-sdk)
```

###  Alternatives

[aws/aws-crt-php

AWS Common Runtime for PHP

423329.7M10](/packages/aws-aws-crt-php)[zumba/amplitude-php

PHP SDK for Amplitude

4110.3M5](/packages/zumba-amplitude-php)[ennnnny/tbk

简约优雅的淘宝客SDK

29416.5k1](/packages/ennnnny-tbk)[sameday-courier/php-sdk

Sameday Courier SDK for PHP

25175.8k1](/packages/sameday-courier-php-sdk)

PHPackages © 2026

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