shipcore-nl / postnl-api-php
PostNL REST API PHP Bindings
0.1.0-alpha1
2017-09-18 08:34 UTC
This package is not auto-updated.
Last update: 2025-04-19 19:52:59 UTC
README
About
This PHP library for both PostNL's REST and SOAP API aims to provide a simple way to connect your
application with PostNL. By abstracting away needless complexity when processing shipment
information and increased fault-tolerance, you can get up and running with PostNL in minutes.
At the lower level this library uses asynchronous communication and payload splitting for
improved performance.
Important notice
The PHP bindings can connect to both PostNL's SOAP and REST API.
The library is still a work-in-progress, but the Barcode, Labelling and Confirming will
hopefully be completed soon.
Status
Service | Status REST | Status SOAP | Version |
---|---|---|---|
Addresses | |||
Adrescheck Nationaal | N/A | N/A | N/A |
Adrescheck Basis Nationaal | N/A | N/A | N/A |
Adrescheck Internationaal | N/A | N/A | N/A |
Persoon op AdresCheck Basis | N/A | N/A | N/A |
Geo Adrescheck Nationaal | N/A | N/A | N/A |
Creditworthiness & Business information | |||
Bedrijfscheck Nationaal | N/A | N/A | N/A |
IBANcheck Nationaal | N/A | N/A | N/A |
Kredietcheck Consument Basis | N/A | N/A | N/A |
Kredietcheck Consument Premium | N/A | N/A | N/A |
Fraudepreventie Check Basis | N/A | N/A | N/A |
Kredietcheck Zakelijk | N/A | N/A | N/A |
Send & Track | |||
Barcode webservice | alpha | alpha | 1.1 |
Labelling webservice | alpha | alpha | 2.1 |
Confirming webservice | alpha | alpha | 1.10 |
Shippingstatus webservice | Expected: September, 2017 | Expected: September, 2017 | 1.6 |
Delivery Options | |||
Deliverydate webservice | Expected: September, 2017 | Expected: September, 2017 | 2.2 |
Location webservice | Expected: September, 2017 | Expected: September, 2017 | 2.1 |
Timeframe webservice | Expected: September, 2017 | Expected: September, 2017 | 2.1 |
Bulkmail webservice | N/A | N/A | N/A |
Instructions
- Clone this repo
- Optionally run
composer require guzzlehttp/guzzle
to use Guzzle instead of cURL directly - Run
composer install
(Don't have composer? Visit https://getcomposer.org/) - You're good to go! A few small examples can be found in this README.
Example
Creating a label using default REST API
<?php use ThirtyBees\PostNL\PostNL; use ThirtyBees\PostNL\Entity\Customer; use ThirtyBees\PostNL\Entity\Address; use ThirtyBees\PostNL\Entity\Shipment; use ThirtyBees\PostNL\Entity\Dimension; require_once __DIR__.'/vendor/autoload.php'; $customer = Customer::create([ 'CollectionLocation' => '123456', 'CustomerCode' => 'DEVC', 'CustomerNumber' => '11223344', 'ContactPerson' => 'Lesley', 'Address' => Address::create([ 'AddressType' => '02', 'City' => 'Hoofddorp', 'CompanyName' => 'PostNL', 'Countrycode' => 'NL', 'HouseNr' => '42', 'Street' => 'Siriusdreef', 'Zipcode' => '2132WT', ]), 'Email' => 'michael@thirtybees.com', 'Name' => 'Michael', ]); $apikey = 'YOUR_API_KEY_HERE'; $sandbox = true; $postnl = new PostNL($customer, $apikey, $sandbox); $barcode = $postnl->generateBarcodeByCountryCode('NL'); $shipment = Shipment::create([ 'Addresses' => [ Address::create([ 'AddressType' => '01', 'City' => 'Utrecht', 'Countrycode' => 'NL', 'FirstName' => 'Peter', 'HouseNr' => '9', 'HouseNrExt' => 'a bis', 'Name' => 'de Ruijter', 'Street' => 'Bilderdijkstraat', 'Zipcode' => '3521VA', ]), ], 'Barcode' => $barcode, 'Dimension' => new Dimension('2000'), 'ProductCodeDelivery' => '3085', ]); $label = $postnl->generateLabel($shipment, 'GraphicFile|PDF', true); var_dump($label);die();