The shipment service must be called to generate the parcel labels. A request to the shipment service will only succeed after a call to the login service to get a unique token to access the shipment service. The token will be valid 24 hours. Please store it for that time.
For other types of shipments that aren't standard, like to the UK after Brexit, please go to https://doc.dpd.be/SWS/Brexit
For other services and products, choose the corresponding topic in the navigation to the right.
Connection URLs
- Live: https://wsshipper.dpd.be/soap/WSDL/ShipmentServiceV33.wsdl
- Stage: https://shipperadmintest.dpd.be/PublicApi/soap/WSDL/ShipmentServiceV33…
Important !
- Labels generated on the STAGE environment are not valid and may not be used for live shipments !
- Also take note that once a live label is created, it needs to be used and the corresponding parcel needs to be given to DPD within the next 48 hours !
Process
The following diagrams illustrate how the process works.
Request parameters
<authentication> section
Node | Type | Length | Description | Mandatory? |
---|---|---|---|---|
<delisId> | String | 6-10 | Your Delis ID provided by DPD | Yes |
<authToken> | String | 128 | Authentication token acquired from the login service | Yes |
<messageLanguage> | String | 5 | This can be set to the default value of en_EN | Yes |
<printOptions> section
Node | Type | Length | Description | Mandatory? |
---|---|---|---|---|
<printerLanguage> | String | 3 | Whether the label is returned on PDF (base64 code) or directly on ZPL | Yes |
<paperFormat> | String | 2 | A6 or A4, depending whether you want 1 label on one A6 label or 4 labels on one A4 page. | Yes |
<printer> section
This section is not used and should not be included in the call.
<generalShipmentData> section
Node | Type | Length | Description | Mandatory? |
---|---|---|---|---|
<mpsId> | String | 25 | The shipment number for consignment data. The shipment number is only accepted if the parcel label number is allocated by customer. It starts with one of "MPS", "EXP" or "B2C", the last eight ciphers are the date in format yyyyMMdd |
No |
<cUser> | n/a | n/a | Not used, do not include in the call. | No |
<mpsCustomerReferenceNumber1> | String | 35 | Consignment customer reference number 1 | No |
<mpsCustomerReferenceNumber2> | String | 35 | Consignment customer reference number 2 | No |
<mpsCustomerReferenceNumber3> | String | 35 | Consignment customer reference number 3 | No |
<mpsCustomerReferenceNumber4> | String | 35 | Consignment customer reference number 4 | No |
<identificationNumber> | n/a | n/a | Not used, do not include in the call. | No |
<sendingDepot> | String | 4 | DPD Depot you belong to. DPD Can tell you which one this is. | Yes |
<product> | String | 2-3 | The type of shipment: - E10 for Express 10h - E12 for Express 12h - E18 for Express 18h Guarantee - CL for everything else |
Yes |
<mpsCompleteDelivery> | n/a | n/a | Not used, do not include in the call. | No |
<mpsCompleteDeliveryLabel> | n/a | n/a | Not used, do not include in the call. | No |
<mpsVolume> | n/a | n/a | Not used, do not include in the call. | No |
<mpsWeight> | n/a | n/a | Not used, do not include in the call. | No |
<mpsExpectedSendingDate> | n/a | n/a | Not used, do not include in the call. | No |
<mpsExpectedSendingTime> | n/a | n/a | Not used, do not include in the call. | No |
<sender> section
This is the consignor of the shipment as it will appear on your label. Please note that not all fields will appear on the label, but regardless of whether they appear on the label or not, they will be included in the electronic data of your shipment if you provide them in the call:
The following fields will appear on the label if provided:
- name1
- name2
- street
- houseNo
- country
- zipCode
- city
- contact
- phone
Node | Type | Length | Description | Mandatory? |
---|---|---|---|---|
<name1> | String | 35 | Name of Sender's address owner | Yes |
<name2> | String | 35 | Second name (or company) of Sender's address owner | No |
<street> | String | 35 | Street of Sender's address owner. Note you can add the house number here too. | Yes |
<houseNo> | String | 8 | House number of Sender's address owner. Only needed if you didn't add the houseno in the <street> field | No |
<state> | String | 2 | State of address Sender's owner in ISO 3166-2 code | No |
<country> | String | 2 | Country of address Sender's owner in ISO 3166-1 alpha-2 code | Yes |
<zipCode> | String | 9 | Zip code of address Sender's owner. Please do not add prefixes. | Yes |
<city> | String | 35 | City/town of address Sender's owner | Yes |
<gln> | Long | 99999 | International location number of Sender's address owner | No |
<customerNumber> | String | 17 |
Customer number of Sender's address owner. If used, it has to be the full 17 char number. Your DPD contact can give you this. |
No |
<contact> | String | 35 | Contact person of Sender's address owner | No |
<phone> | String | 30 | Phone number of Sender's address owner. Must be format +<country prefix><full number> Ex: +32470123456 |
No |
<fax> | String | 30 | Fax number of Sender's address owner. | No |
<email> | String | 30 | Email address of Sender's address owner. For collection requests the maximum length is 40, otherwise always 50. This has to be a valid email address format. | No |
<comment> | String | 70 | Comment on Sender's address owner. This is a free field. | No |
<iaccount> | n/a | n/a | Not used, do not include in the call. | No |
<recipient> section
Node | Type | Length | Description | Mandatory? |
---|---|---|---|---|
<name1> | String | 35 | Name of Receiver's address owner | Yes |
<name2> | String | 35 | Second name (or company) of Receiver's address owner | No |
<street> | String | 35 | Street of Receiver's address owner. Note you can add the house number here too. | Yes |
<houseNo> | String | 8 | House number of Receiver's address owner. Only needed if you didn't add the houseno in the <street> field | No |
<state> | String | 2 | State of address Receiver's owner in ISO 3166-2 code | No |
<country> | String | 2 | Country of address Receiver's owner in ISO 3166-1 alpha-2 code | Yes |
<zipCode> | String | 9 | Zip code of address Receiver's owner. Please do not add prefixes. | Yes |
<city> | String | 35 | City/town of address Receiver's owner | Yes |
<gln> | Long | 99999 | International location number of Receiver's address owner | No |
<customerNumber> | String | 17 | Customer number of Receiver's address owner. | No |
<type> | String | 1 | Use value B if it's a business (a B2B shipment) or P if it's a private person (B2C shipment). | Yes |
<contact> | String | 35 | Contact person of Receiver's address owner | No, unless using Express services |
<phone> | String | 30 | Phone number of Receiver's address owner. Always mandatory, regardless of destination. Must be format +<country prefix><full number> Ex: +32470123456 |
No |
<fax> | String | 30 | Fax number of Receiver's address owner. | No |
<email> | String | 30 | Email address of Receiver's address owner. For collection requests the maximum length is 40, otherwise always 50. This has to be a valid email address format. | No |
<comment> | String | 70 | Comment on Receiver's address owner. This is a free field. | No |
<iaccount> | n/a | n/a | Not used, do not include in the call. |
No |
<parcel> section
Please note you can have multiple parcel within a shipment (multi-parcel shipment) by having more than one <parcel></parcel> instance. An example is included below the page.
Node | Type | Length | Description | Mandatory? |
---|---|---|---|---|
<parcelLabelNumber> | n/a | n/a | Not used, do not include in the call. | No |
<customerReferenceNumber1> | String | Max 35 | Printed on Label as Reference 1 | No |
<customerReferenceNumber2> | String | Max 35 | Printed on Label as Reference 2 | No |
<customerReferenceNumber3> | String | Max 35 | Not printed on Label | No |
<customerReferenceNumber4> | String | Max 35 | Not printed on Label | No |
<swap> | n/a | n/a | Not used, do not include in the call. | No |
<volume> | Int | n/a | Volume of the single parcel (length/width/height in format LLLWWWHHH) in cm without separators. Ex: 050 = 50 cm | No |
<weight> | Int | n/a | Parcel weight in decagrams rounded in 10 gram units without decimal delimiter. Ex. 315 = 3,15kg). If this is smaller than 3 kg, it will be turned into a Small Parcel shipment. | No |
<hazardousLimitedQuantities> | n/a | n/a | Not used, do not include in the call. | No |
<HigherInsurance> | n/a | n/a | Not used, do not include in the call. | No |
<content> | n/a | n/a | Not used, do not include in the call. | No |
<addService> | n/a | n/a | Not used, do not include in the call. | No |
<messageNumber> | n/a | n/a | Not used, do not include in the call. | No |
<function> | n/a | n/a | Not used, do not include in the call. | No |
<parameter> | n/a | n/a | Not used, do not include in the call. | No |
<cod> | n/a | n/a | This service is discontinued since Jan 2019. | No |
<international> | n/a | n/a | For shipments outside the EU. See <international> section | No |
<hazardous> | n/a | n/a | For shipments with hazardous goods. See <hazardous> section | No |
<printInfo1OnParcelLabel> | n/a | n/a | Not used, do not include in the call. | No |
<info1> | n/a | n/a | Not used, do not include in the call. | No |
<info2> | n/a | n/a | Not used, do not include in the call. | No |
<returns> | Boolean | n/a | Defines if parcel is a return parcel. The return parcel must always be next in order to the corresponding outbound parcel. Default value is false. |
No |
<ProductAndServiceData> section
Node | Type | Length | Description | Mandatory? |
---|---|---|---|---|
<orderType> | String | 50 | Defines the shipment type. Use value consignment for a shipment or collection request order for a colleciton request | Yes |
<saturdayDelivery> | Boolean | n/a | Set to true if your shipment should have Saturday Delivery service | No |
<exWorksDelivery> | Boolean | n/a | Set to true if your shipment should be Ex-Works delivery | No |
<guarantee> | n/a | n/a | Not used, do not include in the call. | No |
<tyres> | Boolean | n/a | Set to true if this consignment contains bulk tyres, only for product NP | No |
<personalDelivery> | n/a | n/a | Not used, do not include in the call. | No |
<pickup> | n/a | n/a | Not used, do not include in the call. | No |
<parcelShopDelivery> | n/a | n/a | For shipments to Parcelshops. See <parcelShopDelivery> section | No |
<parcelShopNotification> | n/a | n/a | Shipments to Parcelshops must also include a notification. See <parcelShopNotification> | No |
<predict> | n/a | n/a | For B2C shipments with a Predict message to the receiver. See <predict> section | No |
<personalDeliveryNotification | n/a | n/a | Not used, do not include in the call. | No |
<proactiveNotification> | n/a | n/a | Not used, do not include in the call. | No |
<delivery> | n/a | n/a | Not used, do not include in the call. | No |
<invoiceAddress> | n/a | n/a | Not used, do not include in the call. | No |
<countrySpecificService> | n/a | n/a | Not used, do not include in the call. | No |
Response parameters
Node | Data type | Description |
---|---|---|
<parcellabelsPDF> | String | This is a base64 code that, after decoding, will give you a proper DPD label in PDF format. ZPL format can also be used for printing directly on a Zebra Label Printer. |
<mpsID> | String | The MPSID of your shipment. It starts with one of "MPS", "EXP" or "B2C", then contains the parcelnumber and the last eight ciphers are the date in format yyyyMMdd |
<parcelLabelNumber> | String | Your parcelnumber. This can be used for tracking purposes. Note that if you have a multi-parcel shipment, you can have several <parcelLabelNumber> instances. |
Sample call
Basic B2B Normal Parcel shipment with one parcel (mono-colli)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://dpd.com/common/service/types/Authentication/2.0" xmlns:ns1="http://dpd.com/common/service/types/ShipmentService/3.3">
<soapenv:Header>
<ns:authentication>
<delisId>KD*****</delisId>
<authToken>****</authToken>
<messageLanguage>en_EN</messageLanguage>
</ns:authentication>
</soapenv:Header>
<soapenv:Body>
<ns1:storeOrders>
<printOptions>
<printerLanguage>PDF</printerLanguage>
<paperFormat>A6</paperFormat>
</printOptions>
<order>
<generalShipmentData>
<sendingDepot>0530</sendingDepot>
<product>CL</product>
<sender>
<name1>Senders NV</name1>
<name2>Jan Janssens</name2>
<street>Egide Walschaertsstraat 20</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</sender>
<recipient>
<name1>Receivers NV</name1>
<street>Teststraat 5</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
<weight>340</weight>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
Basic B2B Normal Parcel shipment with several parcels (multi-colli)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://dpd.com/common/service/types/Authentication/2.0" xmlns:ns1="http://dpd.com/common/service/types/ShipmentService/3.3">
<soapenv:Header>
<ns:authentication>
<delisId>KD*****</delisId>
<authToken>****</authToken>
<messageLanguage>en_EN</messageLanguage>
</ns:authentication>
</soapenv:Header>
<soapenv:Body>
<ns1:storeOrders>
<printOptions>
<printerLanguage>PDF</printerLanguage>
<paperFormat>A6</paperFormat>
</printOptions>
<order>
<generalShipmentData>
<sendingDepot>0530</sendingDepot>
<product>CL</product>
<sender>
<name1>Senders NV</name1>
<name2>Jan Janssens</name2>
<street>Egide Walschaertsstraat 20</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</sender>
<recipient>
<name1>Receivers NV</name1>
<street>Teststraat 5</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1</customerReferenceNumber1>
<weight>340</weight>
</parcels>
<parcels>
<customerReferenceNumber1>Box 2</customerReferenceNumber1>
<weight>500</weight>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
Basic B2B Small Parcel
To make a Small Parcel (< 3 kg), you just have to add the weight to the Parcel and make sure it's lower than 3 kilos. The system will automatically make it a Small Parcel shipment.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://dpd.com/common/service/types/Authentication/2.0" xmlns:ns1="http://dpd.com/common/service/types/ShipmentService/3.3">
<soapenv:Header>
<ns:authentication>
<delisId>KD*****</delisId>
<authToken>****</authToken>
<messageLanguage>nl_NL</messageLanguage>
</ns:authentication>
</soapenv:Header>
<soapenv:Body>
<ns1:storeOrders>
<printOptions>
<printerLanguage>PDF</printerLanguage>
<paperFormat>A6</paperFormat>
</printOptions>
<order>
<generalShipmentData>
<sendingDepot>0530</sendingDepot>
<product>CL</product>
<sender>
<name1>Senders NV</name1>
<name2>Jan Janssens</name2>
<street>Egide Walschaertsstraat 20</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</sender>
<recipient>
<name1>Receivers NV</name1>
<street>Receiverstraat 5</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
<weight>100</weight>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
Sample of a reponse for a valid call
This is the response you'd get with a label.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<orderResult xmlns="http://dpd.com/common/service/types/ShipmentService/3.3">
<parcellabelsPDF>****</parcellabelsPDF>
<shipmentResponses>
<identificationNumber/>
<mpsId>MPS0530880141005820190701</mpsId>
<parcelInformation>
<parcelLabelNumber>05308801410058</parcelLabelNumber>
</parcelInformation>
</shipmentResponses>
</orderResult>
</soap:Body>
</soap:Envelope>
You can consult the website https://www.dpdshippingreport.be/login.php to get an overview of your shipments. Use your DelisID and password to get access.