PHP-SDK

Installeer en gebruik de officiële econnect-psb-php SDK: Composer, authenticatie, factuur versturen en webhook-voorbeelden.

De PHP-SDK (econnect-psb-php) is een referentie-implementatie voor de PSB REST API. De library handelt OAuth-tokenmanagement af en biedt typed API-klassen voor veelgebruikte operaties.

Repositorygithub.com/theinvoicingcompany/econnect-psb-phpPackageeverbinding/econnect-psb-php op PackagistLicentieApache 2.0
Vereisten
  • PHP 7.2 of hoger
  • Extensies: curl, json, mbstring
  • Composer
Installatie
composer require everbinding/econnect-psb-php

Laad daarna de Composer-autoloader in je project:

require __DIR__ . '/vendor/autoload.php';
Configuratie

Stel de standaardconfiguratie in met je credentials en de juiste omgeving. Gebruik tijdens ontwikkeling de acceptatie-URLs.

$config = \EConnect\Psb\Configuration::getDefaultConfiguration();

$config
    ->setUsername('jouw-username')          // alleen bij Resource Owner-flow
    ->setPassword('jouw-password')          // alleen bij Resource Owner-flow
    ->setClientId('jouw-client-id')
    ->setClientSecret('jouw-client-secret')
    ->setHost('https://accp-psb.econnect.eu')
    ->setApiKey('Subscription-Key', 'jouw-subscription-key'); // optioneel, legacy

Voor de Identity Server gebruikt de SDK intern OpenID Connect via jumbojett/openid-connect-php. Welke credentials je nodig hebt, hangt af van de gekozen OAuth2-flow — zie Authenticatie.

OmgevingPSB-host (setHost)Identity ServerAcceptatiehttps://accp-psb.econnect.euhttps://accp-identity.econnect.euProductiehttps://psb.econnect.euhttps://identity.econnect.eu

Tip: de Subscription-Key is legacy voor de PSB API en niet meer verplicht. Als je hem meestuurt, moet de waarde wel geldig zijn.

Authenticatie

Roep na configuratie login() aan om een access token op te halen en te cachen:

$config = \EConnect\Psb\Configuration::getDefaultConfiguration();

$auth = new \EConnect\Psb\Authentication($config);
$auth->login();

De SDK vernieuwt het token automatisch zolang je dezelfde Configuration-instantie gebruikt.

Eerste factuur versturen

Met SalesInvoiceApi stuur je een UBL-bestand naar de PSB. De {partyId} is de Peppol-identifier van de verzender; de ontvanger is optioneel — de PSB kiest dan de beste route.

$config = \EConnect\Psb\Configuration::getDefaultConfiguration();

$salesInvoiceApi = new \EConnect\Psb\Api\SalesInvoiceApi(
    new GuzzleHttp\Client(),
    $config
);

$senderPartyId = '0106:12345678';
$filePath = './factuur.xml';
$receiverPartyId = null; // optioneel

$salesInvoiceApi->sendSalesInvoice($senderPartyId, $filePath, $receiverPartyId);

Zorg dat het UBL-document valide is; anders blokkeert de PSB de verzending. Meer over het endpoint en idempotency: Factuur verzenden.

Webhooks ontvangen

In de repository staan voorbeelden voor het ontvangen van inkomende facturen via webhooks:

PSB-webhooks zijn beveiligd met een X-EConnect-Signature-header. Zie Webhooks instellen voor configuratie in het platform.

Veelgebruikte operaties

De SDK genereert API-klassen per endpoint-groep uit de OpenAPI-spec. In de repository en op psb.econnect.eu vind je de volledige lijst. Typische klassen:

API-klasseGebruikSalesInvoiceApiVerkoopfacturen versturen en ontvanger opzoekenPurchaseInvoiceApiInkoopfacturen ophalenHookApiWebhooks registreren en beherenPeppolApiPeppol-registratie en lookup

Raadpleeg de Swagger UI voor request- en responseschema's per operatie.

Foutafhandeling

De SDK gebruikt Guzzle als HTTP-client. API-fouten (4xx, 5xx) komen binnen als GuzzleHttp\Exception\ClientException of ServerException. Controleer $e->getResponse()->getBody() voor de foutdetails van de PSB.

HTTP-statusActie401 UnauthorizedToken verlopen of ongeldige credentials — roep login() opnieuw aan400 Bad RequestValidatiefout in het document — controleer met de Validate API409 ConflictIdempotency-conflict — document is al verwerkt5xxTijdelijke serverfout — implementeer retry met backoff
Zelf code genereren

In plaats van deze library kun je ook PHP-code genereren uit de OpenAPI-spec. Zie OpenAPI codegen voor het commando en authenticatie-opmerkingen.

Veelgestelde vragen
Is dit een productie-klare library of een voorbeeld?

De repository beschrijft zichzelf als referentie-implementatie. De code is open source en wordt in de praktijk gebruikt, maar controleer altijd of de versie op Packagist aansluit bij je PHP-versie en of alle endpoints die je nodig hebt gedekt zijn. Voor volledige API-dekking kun je ook zelf codegen doen.

Welke PHP-versies worden ondersteund?

De package vereist PHP 7.2+. De laatste release op Packagist is v0.9.2 (augustus 2021). Test je integratie grondig in de acceptatieomgeving.