PHPackages                             rafalli/dpd-info-services-bundle - 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. rafalli/dpd-info-services-bundle

ActiveSymfony-bundle[API Development](/categories/api)

rafalli/dpd-info-services-bundle
================================

Symfony 7.4 Bundle integrating DPD InfoServices SOAP API for tracking packages

v1.0.0(3w ago)00MITPHPPHP &gt;=8.1CI passing

Since May 16Pushed 3w agoCompare

[ Source](https://github.com/rafalli/dpd-info-services-bundle)[ Packagist](https://packagist.org/packages/rafalli/dpd-info-services-bundle)[ RSS](/packages/rafalli-dpd-info-services-bundle/feed)WikiDiscussions main Synced 1w ago

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

DPD InfoServices Symfony Bundle
===============================

[](#dpd-infoservices-symfony-bundle)

[![Build Status](https://github.com/rafalli/dpd-info-services-bundle/actions/workflows/ci.yml/badge.svg)](https://github.com/rafalli/dpd-info-services-bundle/actions)[![Latest Stable Version](https://camo.githubusercontent.com/d7d5a8121f99c856915d5907665581151c27e42e1f4f9408c6dab7280ce8a170/68747470733a2f2f706f7365722e707567782e6f72672f726166616c6c692f6470642d696e666f2d73657276696365732d62756e646c652f76)](https://packagist.org/packages/rafalli/dpd-info-services-bundle)[![Total Downloads](https://camo.githubusercontent.com/8476381bc5537283c2b602725b9599b1201d0b431714f4b848effbf55976a95e/68747470733a2f2f706f7365722e707567782e6f72672f726166616c6c692f6470642d696e666f2d73657276696365732d62756e646c652f646f776e6c6f616473)](https://packagist.org/packages/rafalli/dpd-info-services-bundle)[![License](https://camo.githubusercontent.com/a6703247b7e7af400b4bdbca114b4029a6924dc8dbd2eba45316daf339a5e91e/68747470733a2f2f706f7365722e707567782e6f72672f726166616c6c692f6470642d696e666f2d73657276696365732d62756e646c652f6c6963656e7365)](https://packagist.org/packages/rafalli/dpd-info-services-bundle)[![PHP Version Require](https://camo.githubusercontent.com/9329e83310a2d3827baeccb95775f43311a05b178d04016b5411e2c1da51d4e8/68747470733a2f2f706f7365722e707567782e6f72672f726166616c6c692f6470642d696e666f2d73657276696365732d62756e646c652f726571756972652f706870)](https://packagist.org/packages/rafalli/dpd-info-services-bundle)

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

[](#installation)

Install the package via Composer:

```
composer require rafalli/dpd-info-services-bundle
```

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

[](#configuration)

1. Create a configuration file `rafalli_dpd_info_services.yaml` in your Symfony project:

```
rafalli_dpd_info_services:
    wsdl_url: '%env(DPD_WSDL_URL)%'
    channel: '%env(int:DPD_CHANNEL)%'
    username: '%env(DPD_USERNAME)%'
    password: '%env(DPD_PASSWORD)%'
```

2. Add your DPD credentials to your `.env` file:

```
DPD_WSDL_URL="https://dpdinfoservices.dpd.com.pl/DPDInfoServicesObjEventsService/DPDInfoServicesObjEvents?wsdl"
DPD_CHANNEL=12345
DPD_USERNAME=your_login
DPD_PASSWORD=your_password

```

Usage
-----

[](#usage)

### Basic Interaction

[](#basic-interaction)

Inject the `DpdInfoServiceClientInterface` and use the following pattern to handle tracking updates:

```
use Rafalli\DpdInfoServicesBundle\Dto\Request\RetrievalContextDto;
use Rafalli\DpdInfoServicesBundle\Dto\Response\DpdEventDto;
use Rafalli\DpdInfoServicesBundle\Exception\DpdApiException;
use Rafalli\DpdInfoServicesBundle\Service\DpdInfoServiceClientInterface;

// Inject the interface via constructor
public function __construct(
    private readonly DpdInfoServiceClientInterface $dpdClient
) {}

// Fetch and process events
try {
    $response = $this->dpdClient->fetchNewEvents(new RetrievalContextDto(limit: 100));

    foreach ($response->events as $event) {
        // $event is an instance of DpdEventDto
        // Access data: $event->waybill, $event->eventCode, $event->newWaybill
    }

    // Confirm processing (Required by DPD API to clear the queue)
    if ($response->requiresConfirmation()) {
        $this->dpdClient->markAsProcessed($response->confirmId);
    }
} catch (DpdApiException $e) {
    // Handle connection or API errors
}
```

### Checking a Single Waybill

[](#checking-a-single-waybill)

To check the history of a specific parcel without affecting the global event queue:

```
$history = $this->dpdClient->getWaybillHistory('0000000000000U');
```

### Delivery Tracking Utility

[](#delivery-tracking-utility)

If you only need to know whether a parcel was successfully delivered (and exactly when), you can use the built-in `WaybillDeliveryTrackerInterface` which provides clean and easy-to-use domain logic.

```
use Rafalli\DpdInfoServicesBundle\Service\WaybillDeliveryTrackerInterface;

public function __construct(
    private readonly WaybillDeliveryTrackerInterface $deliveryTracker
) {}

public function checkStatus(string $waybill): void
{
    // Returns true if the parcel is marked as delivered (including COD deliveries)
    if ($this->deliveryTracker->isDelivered($waybill)) {

    }
}

public function checkDeliveryDate(string $waybill): void
{
    // Returns the DateTimeImmutable object of the exact delivery moment
    $date = $this->deliveryTracker->getDeliveryDate($waybill);
}
```

Translations
------------

[](#translations)

The bundle provides an `EventCode` Enum that integrates with Symfony's Translation component. You can render translated descriptions directly in Twig:

```
{# Translation Domain: rafalli_dpd_info_services #}
{{ eventDto.eventCode.translationKey | trans({}, 'rafalli_dpd_info_services') }}
```

Error Handling
--------------

[](#error-handling)

All SOAP-related errors or validation issues throw a `Rafalli\DpdInfoServicesBundle\Exception\DpdApiException`. This exception encapsulates the original `SoapFault`, making it easy to debug while keeping your application domain clean.

License
-------

[](#license)

MIT License

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance95

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

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

24d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6507412?v=4)[rafalli](/maintainers/rafalli)[@rafalli](https://github.com/rafalli)

---

Top Contributors

[![rafalli](https://avatars.githubusercontent.com/u/6507412?v=4)](https://github.com/rafalli "rafalli (5 commits)")

---

Tags

api-integrationdpddpd-apidpd-polandlogisticsparcel-trackingphpshippingsoapsoap-clientsymfonysymfony-bun

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/rafalli-dpd-info-services-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/rafalli-dpd-info-services-bundle/health.svg)](https://phpackages.com/packages/rafalli-dpd-info-services-bundle)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.5M370](/packages/easycorp-easyadmin-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.8M710](/packages/sylius-sylius)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M195](/packages/sulu-sulu)[kimai/kimai

Kimai - Time Tracking

4.7k8.7k1](/packages/kimai-kimai)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.4M506](/packages/shopware-core)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1715.6k12](/packages/2lenet-crudit-bundle)

PHPackages © 2026

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