All Projects → DivideBV → Postnl

DivideBV / Postnl

Licence: GPL-2.0 license
Library to connect to PostNL's SOAP service called CIF

Programming Languages

PHP
23972 projects - #3 most used programming language
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Postnl

postnl-api-php
PostNL API PHP bindings
Stars: ✭ 20 (-33.33%)
Mutual labels:  postnl, postnl-cif
cxf-spring-boot-starter
Enterprise & production ready SOAP webservices powered by Spring Boot & Apache CXF
Stars: ✭ 129 (+330%)
Mutual labels:  soap-services
magento
The Magento 2 MyParcel plugin
Stars: ✭ 20 (-33.33%)
Mutual labels:  postnl
sdk
PHP SDK to easily integrate with MyParcel NL, MyParcel BE and Flespakket
Stars: ✭ 27 (-10%)
Mutual labels:  postnl
Stubmatic
Mock HTTP calls without coding. Designed specially for testing and testers.
Stars: ✭ 118 (+293.33%)
Mutual labels:  soap-services

PostNL CIF

Latest Stable Version Total Downloads Latest Unstable Version License

This is a library to interface with the SOAP services offered by PostNL, called CIF.

New authorization

Since version 2.0 of this library, the new authorization method (using tokens instead of username/password) is used.

Installation

Install the latest version with

composer require dividebv/postnl

Implementation Status

This library is not complete. This table lists which services are implemented and which aren't. The list of existing services is taken from PostNL's developer center.

Service Implemented Version
Addresses €
Adrescheck Nationaal N/A
Adrescheck Basis Nationaal N/A
Adrescheck Internationaal N/A
Persoon op Adrescheck Basis N/A
Geo Adrescheck Nationaal N/A
Creditworthiness & Business information €
Bedrijfscheck Nationaal N/A
Fraudepreventie Check Basis N/A
IBANcheck Nationaal N/A
Kredietcheck Consument Basis N/A
Kredietcheck Consument Premium N/A
Kredietcheck Zakelijk N/A
Send & Track
Barcode webservice 1_1
Confirming webservice 1_9
Labelling webservice 2_0
Shippingstatus webservice 1_6
Delivery options
Deliverydate webservice 2_1
Location webservice 2_1
Timeframe webservice 2_0
Mail
Bulkmail webservice N/A

Example

use DivideBV\Postnl\Postnl;
use DivideBV\Postnl\ComplexTypes;

// Create client class using credentials received from PostNL.
$client = new Postnl(
    12345678,   // Customer number
    'ABCD',     // Customer code
    'Acme BV',  // Customer name
    'xxxxxxxx', // API key
    123456,     // Collection location
    'CD1234',   // Globalpack
    true        // Whether to use PostNL's sandbox environment.
);

/**
 * Jan Smit
 * Smit & Zonen
 * Hoofdstraat 1A
 * 1234 AB Heikant
 * The Netherlands
 */
$receiverAddress = ComplexTypes\Address::create()
    ->setAddressType('01')
    ->setFirstName('Jan')
    ->setName('Smit')
    ->setCompanyName('Smit & Zonen')
    ->setStreet('Hoofdstraat')
    ->setHouseNr('1')
    ->setHouseNrExt('A')
    ->setZipcode('1234AB')
    ->setCity('Heikant')
    ->setCountrycode('NL');

$senderAddress = ComplexTypes\Address::create()
    ->setAddressType('02')
    ->setFirstName('Robert')
    ->setName('Jansen')
    ->setCompanyName('Jansen & Janssen')
    ->setStreet('Hoofdstraat')
    ->setHouseNr('999')
    ->setHouseNrExt('B')
    ->setZipcode('1234AB')
    ->setCity('Heikant')
    ->setCountrycode('NL');

// Request a barcode from PostNL.
$barcode = $client->generateBarcodeByDestination($receiverAddress->getCountryCode());

// Create a shipment.
$shipment = ComplexTypes\Shipment::create()
    ->setAddresses(new ComplexTypes\ArrayOfAddress([
        $receiverAddress,
        $senderAddress,
    ]))
    ->setBarcode($barcode)
    ->setDimension(ComplexTypes\Dimension::create()
        ->setWeight(5000) // Weight in g
        ->setWidth(215)   // Width in mm
        ->setLength(305)  // Length in mm
        ->setHeight(280)  // Height in mm
    )
    ->setProductCodeDelivery('3085');

// Generate label and confirm shipment.
$result = $client->generateLabel($shipment);

// Save the label PDF locally.
$label = $result->getLabels()[0];
$file = new \SplFileObject("label.pdf", 'w');
$file->fwrite($label->getContent());
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].