PHPackages                             jacobdekeizer/dpd-shipper-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. jacobdekeizer/dpd-shipper-client

ActiveLibrary[API Development](/categories/api)

jacobdekeizer/dpd-shipper-client
================================

A PHP client for the DPD shipper API

v0.2.0(2y ago)0180MITPHPPHP &gt;8.2

Since Oct 19Pushed 1y ago1 watchersCompare

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

READMEChangelogDependencies (5)Versions (4)Used By (0)

DPD Shipper API client for PHP
==============================

[](#dpd-shipper-api-client-for-php)

An object-oriented PHP client for the [DPD Shipper API](https://integrations.dpd.nl/dpd-shipper/dpd-shipper-webservices/introduction-expectations/).

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

[](#installation)

You can install this package via composer:

```
composer require jacobdekeizer/dpd-shipper-client

```

Usage
-----

[](#usage)

```
$client = new \JacobDeKeizer\DpdShipper\Client(
    authTokenStore: new \JacobDeKeizer\DpdShipper\Stores\JsonFileAuthTokenStore(
        __DIR__ . '/auth.json'
    ), // Or your own implementation of the AuthTokenStore interface
    accountConfiguration: new \JacobDeKeizer\DpdShipper\Configuration\AccountConfiguration(
        username: 'username',
        depotNumber: 'depot number',
        password: 'password',
    ),
    locale: 'nl_NL', // optional
    staging: false, // optional
);
```

Endpoints
---------

[](#endpoints)

> This readme shows basic usage of this package, for all available options see the class definitions and the api documentation.

### ParcelShopFinder

[](#parcelshopfinder)

[Documentation](https://integrations.dpd.nl/dpd-shipper/dpd-shipper-webservices/parcelshopfinder-service/)

#### Find parcel shops

[](#find-parcel-shops)

```
$result = $client->parcelShopFinder()->findParcelShops(new \JacobDeKeizer\DpdShipper\Entities\ParcelShopFinder\FindParcelShopsRequest(
    country: 'NL',
    zipCode: '1012NX',
    city: 'Amsterdam',
    limit: 2
));
```

#### Find parcel shops by geo data

[](#find-parcel-shops-by-geo-data)

```
$result = $client->parcelShopFinder()->findParcelShopsByGeoData(new \JacobDeKeizer\DpdShipper\Entities\ParcelShopFinder\FindParcelShopsByGeoDataRequest(
    latitude: 52.377956,
    longitude: 4.897070,
    limit: 2
));
```

### Shipment

[](#shipment)

[Documentation](https://integrations.dpd.nl/dpd-shipper/dpd-shipper-webservices/shipment-service-2/)

#### Store orders

[](#store-orders)

```
$result = $client->shipment()->storeOrders(new \JacobDeKeizer\DpdShipper\Entities\Shipment\StoreOrdersRequest(
        [
            new \JacobDeKeizer\DpdShipper\Entities\Shipment\Order(
                generalShipmentData: new \JacobDeKeizer\DpdShipper\Entities\Shipment\GeneralShipmentData(
                    sendingDepot: $this->client->login()->session()->depot,
                    product: \JacobDeKeizer\DpdShipper\Entities\Shipment\ShipmentProduct::CL,
                    sender: new \JacobDeKeizer\DpdShipper\Entities\Shipment\Address(
                        name1: 'Ikea',
                        street: 'Hullenbergweg',
                        country: 'NL',
                        zipCode: '1101BL',
                        city: 'Amsterdam',
                        houseNo: '2',
                        phone: '+31612345678',
                        email: 'johndoe@example.com',
                    ),
                    recipient: new \JacobDeKeizer\DpdShipper\Entities\Shipment\Address(
                        name1: 'John Doe',
                        street: 'Hullenbergweg',
                        country: 'NL',
                        zipCode: '1101BL',
                        city: 'Amsterdam',
                        name2: 'Company Name',
                        houseNo: '2',
                        phone: '+31612345678',
                        email: 'johndoe@example.com',
                    ),
                ),
                productAndServiceData: new \JacobDeKeizer\DpdShipper\Entities\Shipment\ProductAndServiceData(
                    orderType: \JacobDeKeizer\DpdShipper\Entities\Shipment\OrderType::Consignment,
                    saturdayDelivery: true,
                    predict: new \JacobDeKeizer\DpdShipper\Entities\Shipment\Notification(
                        channel: \JacobDeKeizer\DpdShipper\Entities\Shipment\NotificationChannel::Sms,
                        value: '+31612345678',
                        language: 'NL',
                    ),
                ),
                parcels: [
                    new \JacobDeKeizer\DpdShipper\Entities\Shipment\Parcel(
                        customerReferenceNumber1: 'TEST12345',
                        customerReferenceNumber2: 'A reference', // Optional
                        volume: 0100202030, // 10cm x 20cm x 30cm, optional
                        weight: 315, // 3,15 KG, optional
                    ),
                    new \JacobDeKeizer\DpdShipper\Entities\Shipment\Parcel(
                        customerReferenceNumber1: 'TEST12',
                    )
                ]
            )
        ],
        new \JacobDeKeizer\DpdShipper\Entities\Shipment\PrintOptions(
            printerLanguage: \JacobDeKeizer\DpdShipper\Entities\Shipment\PrinterLanguage::PDF,
            paperFormat: \JacobDeKeizer\DpdShipper\Entities\Shipment\PaperFormat::A6,
        )
    ));
```

Exceptions
----------

[](#exceptions)

All exceptions extend from the DpdShipperException. See the Exceptions folder for all possible exceptions if you want to catch them individually.

```
try {
    $result = $client->parcelShopFinder()->findParcelShopsByGeoData(...);

    var_dump($result);
} catch (\JacobDeKeizer\DpdShipper\Exceptions\AuthenticationFaultException $authenticationFaultException) {
    // Catches the specific AuthenticationFaultException
    $errorMessage = $authenticationFaultException->detail->authenticationFault->errorMessage;

    var_dump($authenticationFaultException->detail);
} catch (\JacobDeKeizer\DpdShipper\Exceptions\DpdShipperException $exception) {
    // Catches the rest of the possible exceptions.
    var_dump($exception);
}
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity47

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

3

Last Release

933d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0bbbc5b426c0158e3113071a41b109e06f21b05eae20eeca72a913a7c694b4ba?d=identicon)[jacobdekeizer](/maintainers/jacobdekeizer)

---

Top Contributors

[![jacobdekeizer](https://avatars.githubusercontent.com/u/15017400?v=4)](https://github.com/jacobdekeizer "jacobdekeizer (6 commits)")

---

Tags

phpapidpddpd shipper

###  Code Quality

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/jacobdekeizer-dpd-shipper-client/health.svg)

```
[![Health](https://phpackages.com/badges/jacobdekeizer-dpd-shipper-client/health.svg)](https://phpackages.com/packages/jacobdekeizer-dpd-shipper-client)
```

###  Alternatives

[upcloudltd/upcloud-php-api

UpCloud PHP API

2422.0k](/packages/upcloudltd-upcloud-php-api)[wayofdev/laravel-symfony-serializer

📦 Laravel wrapper around Symfony Serializer.

2113.6k](/packages/wayofdev-laravel-symfony-serializer)[bornfight/erste-bank-client

Client written in PHP for Erste Bank API

106.1k](/packages/bornfight-erste-bank-client)

PHPackages © 2026

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