PHPackages                             loppep/peppol-directory-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. loppep/peppol-directory-client

ActiveLibrary[API Development](/categories/api)

loppep/peppol-directory-client
==============================

An API client for the Peppol directory

v1.9.0(5mo ago)1440↓50%MITPHPPHP ^7.4 || ^8.0

Since Nov 18Pushed 5mo agoCompare

[ Source](https://github.com/loppep/peppol-directory-client)[ Packagist](https://packagist.org/packages/loppep/peppol-directory-client)[ RSS](/packages/loppep-peppol-directory-client/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (7)Versions (20)Used By (0)

Peppol Directory Client
=======================

[](#peppol-directory-client)

An API client for searching Peppol participants in the Peppol Directory.
The additional SMP check ensures that the participant is actually reachable via Peppol.
This was mainly implemented because of the following reason found in the documentation of the Peppol Directory:

> A crucial governance note: updating the Directory is performed by SMP providers and is not mandatory. Therefore, a company can be fully routable on Peppol and still not appear in the public Directory. This does not invalidate their Peppol status; it only means their SMP has not published a “business card” to the Directory.

Getting started
---------------

[](#getting-started)

Install our library

```
composer require loppep/peppol-directory-client
```

Install a PSR-18 library, e.g. Symfony HttpClient

```
composer require symfony/http-client
```

Install a PSR-7 library, e.g. Nyholm PSR-7

```
composer require nyholm/psr7
```

Search for a Peppol participant
-------------------------------

[](#search-for-a-peppol-participant)

This performs a search in the Peppol Directory and additionally checks the SMP.

```
use Http\Discovery\Psr18Client;
use Loppep\PeppolDirectoryClient\Enum\Environment;
use Loppep\PeppolDirectoryClient\PeppolDirectoryClient;

$directory = new PeppolDirectoryClient(
    new Psr18Client(),
    Environment::production()
);
$directory->search('DE343985244');
```

Get a Peppol participant by their ID
------------------------------------

[](#get-a-peppol-participant-by-their-id)

This bypasses the Peppol Directory and checks directly with the SMP.

```
use Http\Discovery\Psr18Client;
use Loppep\PeppolDirectoryClient\Data\IdType;
use Loppep\PeppolDirectoryClient\Enum\Environment;
use Loppep\PeppolDirectoryClient\PeppolDirectoryClient;

$directory = new PeppolDirectoryClient(
    new Psr18Client(),
    Environment::production()
);
$directory->get(
    new IdType(
        $scheme = 'iso6523-actorid-upis',
        $value = '9930:de343985244'
    )
);
```

Quickly check if a Peppol participant is registered
---------------------------------------------------

[](#quickly-check-if-a-peppol-participant-is-registered)

This bypasses the Peppol Directory and checks directly with the SMP.

```
use Http\Discovery\Psr18Client;
use Loppep\PeppolDirectoryClient\Data\IdType;
use Loppep\PeppolDirectoryClient\Enum\Environment;
use Loppep\PeppolDirectoryClient\PeppolDirectoryClient;

$directory = new PeppolDirectoryClient(
    new Psr18Client(),
    Environment::production()
);
$directory->isRegistered(
    new IdType(
        $scheme = 'iso6523-actorid-upis',
        $value = '9930:de343985244'
    )
);
```

###  Health Score

40

—

FairBetter than 87% of packages

Maintenance76

Regular maintenance activity

Popularity18

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

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 ~1 days

Total

19

Last Release

159d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/671116?v=4)[Tom Schuermans](/maintainers/TSchuermans)[@TSchuermans](https://github.com/TSchuermans)

---

Top Contributors

[![TSchuermans](https://avatars.githubusercontent.com/u/671116?v=4)](https://github.com/TSchuermans "TSchuermans (19 commits)")

### Embed Badge

![Health badge](/badges/loppep-peppol-directory-client/health.svg)

```
[![Health](https://phpackages.com/badges/loppep-peppol-directory-client/health.svg)](https://phpackages.com/packages/loppep-peppol-directory-client)
```

###  Alternatives

[openai-php/client

OpenAI PHP is a supercharged PHP API client that allows you to interact with the Open AI API

5.8k22.6M232](/packages/openai-php-client)[deeplcom/deepl-php

Official DeepL API Client Library

2616.2M66](/packages/deeplcom-deepl-php)[getbrevo/brevo-php

Official Brevo provided RESTFul API V3 php library

963.1M35](/packages/getbrevo-brevo-php)[swisnl/json-api-client

A PHP package for mapping remote JSON:API resources to Eloquent like models and collections.

211473.2k12](/packages/swisnl-json-api-client)[opensearch-project/opensearch-php

PHP Client for OpenSearch

15024.3M64](/packages/opensearch-project-opensearch-php)[telnyx/telnyx-php

Official Telnyx PHP SDK — APIs for Voice, SMS, MMS, WhatsApp, Fax, SIP Trunking, Wireless IoT, Call Control, and more. Build global communications on Telnyx's private carrier-grade network.

35636.1k2](/packages/telnyx-telnyx-php)

PHPackages © 2026

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