How to create any operational order with the webservice.
Last reviewed: October 2026
Reviewed and validated by the DPD Customer IT team.
How to create any operational order with the webservice.
The shipment service is used to generate 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 services and products, choose the corresponding topic in the navigation to the right.
When a ShipmentService request is successful, the system will respond with a Base64 string on the <parcellabelsPDF> segment that can be decoded into a PDF with a label as well as the corresponding 14 digit parcel number in the <parcelLabelNumber> segment, which you capture.
Important:
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 |
| <dropOffType> | String | 5 | Determines if your label is QR format, normal format or both. FULL_LABEL= only normal label (default). QR_CODE= only QR label. BOTH= both a normal and QR label are returned. More details in point 16 of this page. Only works with endpoint v3.5 or higher. | No |
<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 “MPS“, “EXP” or “B2C“, the last eight digits are the date in format yyyyMMdd |
No |
| <mpsCustomerReferenceNumber1> | String | 35 |
Consignment customer reference number 1. Shown on label and included in electronic data, but not shown on label for Collection Requests. This reference is retained in subsequent data flows. |
No |
| <mpsCustomerReferenceNumber2> | String | 35 |
Consignment customer reference number 2. Shown on label and included in electronic data. This reference is retained in subsequent data flows. |
No |
| <mpsCustomerReferenceNumber3> | String | 35 |
Consignment customer reference number 3. Not shown on the label and not retained in subsequent data flows. Use <mpsCustomerReferenceNumber1> or <mpsCustomerReferenceNumber2> if the reference needs to be retained. |
No |
| <mpsCustomerReferenceNumber4> | String | 35 |
Consignment customer reference number 4. Not shown on the label and not retained in subsequent data flows. Use <mpsCustomerReferenceNumber1> or <mpsCustomerReferenceNumber2> if the reference needs to be retained. |
No |
| <sendingDepot> | String | 4 | DPD Depot you belong to. DPD Can tell you which one to use | Yes |
| <product> | String | 2-14 | The type of shipment: – E10 for Express 10h – E12 for Express 12h – E18 for Express 18h Guarantee – B2B MSG option for B2B Predict (service not active by default) – CL for all other shipment types |
Yes |
<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:
| 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 |
| <street2> | String | 35 | Street2 is optional and may not contain street name and house number, only additional information (floor, building, appartment, …) | No |
| <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 | 99 | 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 |
| <street2> | String | 35 | Street2 is optional and may not contain street name and house number, only additional information (floor, building, appartment, …) | No |
| <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). These values will only be included in the data and will not be visible on the label. | 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. Must be format +<country prefix>#<full number> Ex: +32#470123456 |
No, unless using Express services |
| <fax> | String | 30 | Fax number of Receiver’s address owner. | No |
| <email> | String | 40 | 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 | Reference 1 of this particular parcel. Shown on label and included in electronic data. |
No |
| <customerReferenceNumber2> | String | Max 35 | Reference 2 of this particular parcel. Shown on label and included in electronic data, but not shown on Collection Request labels. |
No |
| <customerReferenceNumber3> | String | Max 35 | Reference 3 of this particular parcel. Not shown on any label, but included in electronic data. |
No |
| <customerReferenceNumber4> | String | Max 35 | Reference 4 of this particular parcel. Not shown on any label, but included in electronic data. |
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, must have 3 digits for each measurement. Example: 10cm x 20cm x 30cm is 010020030 |
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 by itself. Entering a correct weight that reflects reality is important You might notice a special icon on labels if the weight exceeds 10 or 20 kg: |
Yes |
| <hazardousLimitedQuantities> | n/a | n/a | Not used, not shown on label. Do not include in the call. | No |
| <HigherInsurance> | n/a | n/a | Usage of this function is not allowed without DPD’s explicit approval. | No |
| <content> | n/a | n/a | Not used, not shown on label. Do not include in the call. | No |
| <addService> | n/a | n/a | Not used, not shown on label. Do not include in the call. | No |
| <messageNumber> | n/a | n/a | Not used, not shown on label. Do not include in the call. | No |
| <function> | n/a | n/a | Not used, not shown on label. Do not include in the call. | No |
| <parameter> | n/a | n/a | Not used, not shown on label. 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> | Boolean | n/a | Only used for Collection Request. Set to true if <info1> needs to be shown on Coll. Request label | No |
| <info1> | String | 20 | Not shown on label, except on labels for Coll. Request on which it will appear if above field is set to true. | No |
| <info2> | String | 20 | Not shown on label. | No |
| <returns> | Boolean | n/a | Defines if parcel is a return parcel. When an outbound parcel and its return parcel are created within the same request, the return parcel number is generated immediately after the outbound parcel number. Standalone return parcels are also supported. 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 collection 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><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 tool MyDPD 4 Business to get an overview of your shipments.
These are examples of the standard shipment product with minimal mandatory namespaces entry.
Sample call
Basic B2B Normal Parcel shipment with one parcel
<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>
<weight>100</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>100</weight>
</parcels>
<parcels>
<customerReferenceNumber1>Box 2</customerReferenceNumber1>
<weight>500</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>
For DPD B2C Predict, you have to add the <predict> segment in the <productandservicedata> section. Please note this section is for B2C shipments. These are similar but definitely not the same as B2B shipments mentioned in point 2 of this page.
<predict> has a few child segments that must be included:
⚠️ Attention !
For Predict shipments, depending on the type of message you want to send (which is precised in the <channel> segment), you will have to include the email or phone number in either <phone> or <email> field under the <receiver> segment.
Sample call
<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>Sender NV</name1>
<name2>Jan Jansens</name2>
<street>Egide Walschaertsstraat 20</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</sender>
<recipient>
<name1>Receivers LTD</name1>
<street>Receiverstreet 5</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>P</type>
<phone>+32#479000000</phone>
<email>testaddress@dpd.be</email>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
<weight>340</weight>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
<predict>
<channel>1</channel>
<value>testaddress@dpd.be</value>
<language>NL</language>
</predict>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
DPD B2B Predict shipment, is identical to B2C Predict (as described in point 3 of this page) with one important key difference: the <product> field in <generalShipmentData> must contain the value B2B MSG option (please note this is case sensitive)
It’s also important to note that this service is not active by default for customers. This service will only be made available after approval from your Sales representative.
Please make sure you do not confuse B2B Predict with B2C Predict. They are very similar in code, but very different in how the shipments are physically delivered.
Sample call
<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>B2B MSG option</product>
<sender>
<name1>Sender NV</name1>
<name2>Jan Jansens</name2>
<street>Egide Walschaertsstraat 20</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</sender>
<recipient>
<name1>Receivers LTD</name1>
<street>Receiverstreet 5</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
<phone>+32#479000000</phone>
<email>testaddress@dpd.be</email>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
<weight>340</weight>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
<predict>
<channel>1</channel>
<value>testaddress@dpd.be</value>
<language>NL</language>
</predict>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
This looks almost identical to a regular DPD Business shipment. In order to turn it into a shipment via parcelshop, you have to add the <parcelShopDelivery> segment in the <productAndServiceData> section. This one has a couple of child segments too:
⚠️ Attention !
You will also have to make sure you fill in the <phone> field in the <recipient> segment since for several countries, Parcelshop Shipments require that field to be used.
Once you print your label, you’ll notice how the receiver area contains the Parcelshop’s address and not your final Receiver’s address. However, the Receiver’s details are included in the electronic data of this shipment.
Sample call
<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>Sender NV</name1>
<name2>Jan Jansens</name2>
<street>Egide Walschaertsstraat 20</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</sender>
<recipient>
<name1>Receivers LTD</name1>
<street>IJzerenleen 13</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>P</type>
<phone>+32#479123456</phone>
<email>testaddress@dpd.be</email>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
<weight>340</weight>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
<parcelShopDelivery>
<parcelShopId>666910179</parcelShopId>
<parcelShopNotification>
<channel>3</channel>
<value>+32#479123456</value>
<language>NL</language>
</parcelShopNotification>
</parcelShopDelivery>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
Express shipments look almost identical to regular DPD Business shipments. These products are determined with in the <product> segment under <generalshipmentdata>. Use values E10, E12 or E18 instead of CL for Express 10, Express 12 or Express 18 Guarantee respectively.
Please note that with Express Shipments, a contact name and phone number of the recipients must be supplied in the <recipient> segment. These are mandatory fields for Express.
Express 18 Guarantee sample call
<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>mbvcr530</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>E18</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>
<contact>Mr. Contactman</contact> <!-- Mandatory for Express -->
<phone>015123456</phone><!-- Mandatory for Express -->
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
More details about each field will be added later, but for now, please base yourself on the example below.
Each shipment outside the EU, which includes countries like Switzerland, Norway and Iceland, must have an <international> section under the <parcels> section. Please note that you will need a separate <commercialInvoiceLine> for each different kind of item you’re shipping. An object that has it’s own HS code, constitutes a separate item.
These segments will be described in the raster below (please scroll lower)
It’s extremely important to provide all details required by law, which can differ from destination to destination. Please make sure you familiarize yourself with the general rules for RoW shipments which are described here
It’s also on that page that you can find which fields are mandatory and what the limitations are of your specific destination.
<international> segment
| Node | Type | Length | Description | Mandatory? |
|---|---|---|---|---|
| <parcelType> | Boolean | n/a | Please always set this to 0 (zero) | Yes |
| <customsAmount> | Long | 99999 | Defines the customs amount in total without decimal separator (e.g. 1450 = 14.5 or 100 = 1). | Yes |
| <customsCurrency> | String | 3 | Currency code in ISO 4217 alpha-3 format (ex EUR) | Yes |
| <customsAmountEx> | Long | 99999 | Repeat of customsAmount | Yes |
| <customsCurrencyEx> | String | 3 | Repeat of customsCurrency | Yes |
| <exportReason> | String | 2 | Reason for export :
01:sale 02:return/replacement 03:gift |
Yes |
| <customsTerms> | String | 2 | Declares the customs terms. Please use value 06 (DAP)
Value 07 (DAP enhanced, Duty and taxes were pre-paid by the |
Yes |
| <customsContent> | String | 35 | Describes the content of the parcel. | Yes |
| <customsInvoice> | String | 20 | Defines the invoice number. | Yes |
| <customsInvoiceDate> | Int | 99999 | Defines the invoice date (format YYYYMMDD). | Yes |
| <customsAmountParcel> | Long | 99999 | Value of your entire parcel, with two decimal places without separator. Ex. If your parcel is worth 12.54€, use value 1254. If it’s worth 550.20€, use value 55020 |
No |
| <commercialInvoiceConsignee> | See lower | n/a | Contains address data of commercial invoice consignee. See <commercialInvoiceConsignee> section below | Yes |
| <commercialInvoiceConsignor> | See lower | n/a | Contains address data of commercial invoice consignor. See <commercialInvoiceConsignor> section below | Yes |
| <commercialInvoiceLine> | See lower | n/a | Contains invoice line data See <commercialInvoiceLine> section below |
Yes |
<commercialInvoiceConsignee> and <commercialInvoiceConsignor> segments
| Node | Type | Length | Description | Mandatory? |
|---|---|---|---|---|
| <name1> | String | 35 | Name of the consignee / consignor | Yes |
| <street> | String | 35 | Street of the consignee / consignor | Yes |
| <houseNo> | String | 8 | House number of the consignee / consignor | Yes |
| <state> | String | 35 | State of the consignee (only needed if consignee is located in the United States or Canada), needs to be the official ISO Code. | Yes |
| <country> | String | 2 | Country of the consignee / consignor (ISO 3166-2 Code) | Yes |
| <zipCode> | String | 9 | Zipcode of the consignee / consignor. Please do not add prefixes. | Yes |
| <city> | String | 35 | City of the consignee / consignor | Yes |
| <phone> | String | 3 | Phone of the consignee / consignor. Needs to be the full phone number starting with the country prefix. | Yes |
| <email> | String | 30 | Email of the consignee / consignor. It must be on an existing domain. | Yes |
| <eoriNumber> | String | 30 | EORI number of the consignee / consignor. | Yes |
| <vatNumber> | String | 30 | VAT number of the consignee / consignor. | Yes |
<commercialInvoiceLine> segment
You can have multiple <commercialInvoiceLine> segments: one for each item you have.
| Node | Type | Length | Description | Mandatory? |
|---|---|---|---|---|
| <customsTarif> | String | 8 | HS code of your item | Yes |
| <receiverCustomsTarif> | String | 8 | Repeat of the HS code of your item | Yes |
| <content> | String | 80 | Description of your item | Yes |
| <grossWeight> | Long | 99999 | Weight of this item in total. So if you have 200 pieces of this item, this is the weight of all 200. | Yes |
| <itemsNumber> | Long | 99999 | How many of this items this parcel has | Yes |
| <amountLine> | Long | 99999 | Value of this item in total with two decimal places without separator. So if you have 200 pieces of this item, this is the value of all 200. Ex. If your parcel is worth 12.54€, use value 1254. If it’s worth 550.20€, use value 55020 |
Yes |
| <customsOrigin> | String | 2 | Origin country of this item (ISO 3166-2 Code) | Yes |
Basic example of a shipment to the United States of America
In our example, we’ll be sending some office supplies to the USA.
<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.5"> <soapenv:Header> <ns:authentication> <delisId>***</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>Belgian Sender NV</name1> <name2/> <street>De Tyraslaan</street> <houseNo>2</houseNo> <country>BE</country> <zipCode>1800</zipCode> <city>Vilvoorde</city> <phone>+32490123456</phone> <email>sendertest@dpd.be</email> </sender> <recipient> <name1>USA Receiver</name1> <street>Ashburn Street</street> <houseNo>8</houseNo> <state>MI</state> <!-- For shipments to Canada and US, State is mandatory and needs to be the ISO code --> <country>US</country> <zipCode>49740</zipCode> <city>Harbor Springs</city> <phone>+12315263300</phone> <email>usareceivertest@dpd.be</email> <eoriNumber>US987654321000</eoriNumber> <vatNumber>USVAT987654321</vatNumber> </recipient> </generalShipmentData> <parcels> <customerReferenceNumber1/> <volume>010020055</volume> <!-- Mandatory and must reflect reality. LLLWWWHHH in cm (010020055 = 10x20x55 cm)--> <weight>800</weight> <!-- Mandatory and must reflect reality, rounded in 10gr units (800=8 kg) --> <international> <parcelType>0</parcelType> <!--1 for docs, 0 for non docs--> <customsAmount>1500</customsAmount> <customsCurrency>EUR</customsCurrency> <customsAmountEx>1500</customsAmountEx> <customsCurrencyEx>EUR</customsCurrencyEx> <exportReason>01</exportReason> <!-- 01:sale, 02:return/replace, 03: gift --> <customsTerms>07</customsTerms> <customsContent>Office Supplies</customsContent> <customsInvoice>112233</customsInvoice> <customsInvoiceDate>20260707</customsInvoiceDate> <commercialInvoiceConsignee> <name1>USA Receiver</name1> <street>Ashburn Street</street> <houseNo>8</houseNo> <state>MI</state> <country>US</country> <zipCode>49740</zipCode> <city>Harbor Springs</city> <phone>+12315263300</phone> <email>usareceivertest@dpd.be</email> <eoriNumber>US987654321000</eoriNumber> <vatNumber>USVAT987654321</vatNumber> </commercialInvoiceConsignee> <commercialInvoiceConsignor> <name1>Belgian Sender NV</name1> <street>De Tyraslaan</street> <houseNo>2</houseNo> <country>BE</country> <zipCode>1800</zipCode> <city>Vilvoorde</city> <phone>+32490123456</phone> <email>sendertest@dpd.be</email> <eoriNumber>BE0123456789</eoriNumber> <vatNumber>BE0123456789</vatNumber> </commercialInvoiceConsignor> <!--1 or more repetitions:--> <commercialInvoiceLine> <customsTarif>12345678</customsTarif> <!-- HS number --> <receiverCustomsTarif>12345678</receiverCustomsTarif> <!-- Repeat of HS number --> <content>Pencils</content> <grossWeight>600</grossWeight> <itemsNumber>100</itemsNumber> <!--How many of this item in this shipment?--> <amountLine>1200</amountLine> <!-- Total value of all of this item, so in this example: €1200 for all 100 pencils --> <customsOrigin>BE</customsOrigin> </commercialInvoiceLine> <commercialInvoiceLine> <customsTarif>87654321</customsTarif> <!-- HS number --> <receiverCustomsTarif>87654321</receiverCustomsTarif> <!-- Repeat of HS number --> <content>Paper Clips</content> <grossWeight>200</grossWeight> <itemsNumber>2000</itemsNumber> <!--How many of this item in this shipment?--> <amountLine>300</amountLine> <!-- Total value of all of this item --> <customsOrigin>BE</customsOrigin> </commercialInvoiceLine> </international> </parcels> <productAndServiceData> <orderType>consignment</orderType> </productAndServiceData> </order> </ns1:storeOrders> </soapenv:Body> </soapenv:Envelope>
A Return shipment is almost identical to a regular DPD Business. You have to add a <return> segment to the <parcels> section and set the value to true.
You don’t have to reverse the roles of the Sender and the Receiver. The system does that for you:
The <sender> segment should still contain your details, even though you will become the receiving party on a return shipment. Likewise, the <receiver> segment should contain the details of your customer despite him becoming the sending party with a return shipment.
Once you generate the label, you will notice that the Sender (you) has become the receiver and the receiver (the one who will return the label) will become the sender. The system did this by itself and is entirely normal.
Sample call
<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>Jean Durand</name1>
<street>Rue du Test 2</street>
<country>FR</country>
<zipCode>75001</zipCode>
<city>Paris</city>
<type>B</type>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
<returns>true</returns>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
Saturday delivery shipments are almost identical to regular DPD Business shipments. You only have to add a flag <saturdayDelivery> to the <productAndServiceData> section and set it to true.
Sample call
<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>
<saturdayDelivery>true</saturdayDelivery>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
</soapenv:Envelope>
A Bulk Tyres shipment is almost identical to a regular DPD Business. You have to add a <tyres> segment to the <ProductAndServiceData> section and set the value to true.
Sample call
<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 BVBA</name1>
<name2>Jan Jansens</name2>
<street>EGIDE WALSCHAERTSTRAAT 20</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</sender>
<recipient>
<name1>Testman</name1>
<street>Bruul 5</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>P</type>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
<weight>340</weight>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
<tyres>true</tyres>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
A DPD Shop 2 Shop shipment is almost identical to a DPD Parcelshop shipment. The only difference being the product used. For DPD Shop 2 Shop, we use value S2S in the <product> segment
Just like with a DPD Parcelshop shipment, the entire <parcelShopDelivery> segment is mandatory, as describe above in point 5. DPD Shop (B2C) Shipment
Sample call
<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>S2S</product>
<sender>
<name1>Sender NV</name1>
<name2>Jan Jansens</name2>
<street>Egide Walschaertsstraat 20</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
</sender>
<recipient>
<name1>Receivers LTD</name1>
<street>IJzerenleen 13</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>P</type>
<phone>+32#479123456</phone>
<email>testaddress@dpd.be</email>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
<weight>340</weight>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
<parcelShopDelivery>
<parcelShopId>666910179</parcelShopId>
<parcelShopNotification>
<channel>3</channel>
<value>+32#479123456</value>
<language>NL</language>
</parcelShopNotification>
</parcelShopDelivery>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
Ex-Works shipments are almost identical to the regular DPD Business shipment. You just have to add a <exWorksDelivery> tag to <productAndServiceData> and set it to true.
Sample call
<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>
<exWorksDelivery>true</exWorksDelivery>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
Request parameters
Shipments to post-Brexit United Kingdom must have an <international> section under the <parcels> section. Please note that you will need a separate <commercialInvoiceLine> for each different kind of item you’re shipping. An object that has it’s own HS code, constitutes a separate item.
These segments will be described in the raster below.
Other changes
Notes about EORI, HMRC and VAT number
<sender> segment
Is identical as for any other shipments, taking into consideration the mandatory fields mentioned above. In case of shipment creation where HMRC number entry applies, be sure to add HMRC number here as well as in the ‘comment2’ section of the international segment.
This especially important if you are shipping on behalf of a third party
| Node | Type | Length | Description | Mandatory? |
|---|---|---|---|---|
| <destinationCountryRegistration> | String | n/a | Must contain HMRC number | Conditional, if value of goods meets HMRC requirements |
<international> segment
| Node | Type | Length | Description | Mandatory? |
|---|---|---|---|---|
| <parcelType> | Boolean | n/a | Please always set this to false | Yes |
| <customsAmount> | Long | 99999 | Defines the customs amount in total without decimal separator (e.g. 1450 = 14.5 or 100 = 1). | Yes |
| <customsCurrency> | String | 3 | Currency code in ISO 4217 alpha-3 format (ex EUR) | Yes |
| <customsAmountEx> | Long | 99999 | Defines the converted customs amount in total without decimal separator (e.g. 1450 = 14.5 or 100 = 1). You can repeat what you put in <customsAmount> | Yes |
| <customsCurrencyEx> | String | 3 | Currency code in ISO 4217 alpha-3 format. Currency for conversion (destination country). You can repeat what you put in <customsCurrency> | Yes |
| <clearanceCleared> | String | 1 | Please use value N | Yes |
| <prealertStatus> | String | 3 | Please use value S03 | Yes |
| <exportReason> | String | 2 | Reason for export :
01:sale 02:return/replacement 03:gift |
Yes |
| <customsTerms> | String | 2 | Declares the customs terms. Please use value 06 (DAP)
Value 07 (DAP enhanced, Duty and taxes were pre-paid by the |
Yes |
| <customsContent> | String | 35 | Describes the content of the parcel. | Yes |
| <customsPaper> | String | 20 | Lists the accompanying documents. The values are to be combined without separator (e.g. “ABG”).
Following values are defined: A = commercial invoice B = pro forma invoice C = export declaration D = EUR1 E = EUR2 F = ATR G = delivery note H = third party billing I = T1 document |
No |
| <customsEnclosure> | Boolean | n/a | Defines if the accompanying documents are at the parcel or not. Default value is false. | No |
| <customsInvoice> | String | 20 | Defines the invoice number. | Yes |
| <customsInvoiceDate> | Int | 99999 | Defines the invoice date (format YYYYMMDD). | Yes |
| <customsAmountParcel> | Long | 99999 | Value of your entire parcel, with two decimal places without separator. Ex. If your parcel is worth 12.54€, use value 1254. If it’s worth 550.20€, use value 55020 |
No |
| <linehaul> | String | 2 | Defines mode of line haul. Possible values are AI for air RO for road. |
No |
| <shipMrn> | String | 20 | Movement reference number of the electronical export declaration. | No |
| <collectiveCustomsClearance> | Boolean | n/a | Flag for determining collective customs clearance. Default value is false | No |
| <comment1> | String | 70 | Comment about your shipment | No |
| <comment2> | String | 70 | Must contain HMRC number | Yes |
| <commercialInvoiceConsigneeVatNumber> | String | 20 | Defines the commercial invoice consignee VAT number. – In case of a B2B shipment: use receiver’s VAT number. – In case of a B2C shipment: use sender’s VAT number |
Yes |
| <commercialInvoiceConsignee> | See lower | n/a | Contains address data of commercial invoice consignee. See <commercialInvoiceConsignee> section | Yes |
| <commercialInvoiceConsignor> | See lower | n/a | Contains address data of commercial invoice consignor. See <commercialInvoiceConsignor> section | Yes |
| <commercialInvoiceLine> | See lower | n/a | Contains invoice line data | Yes |
<commercialInvoiceConsignee> and <commercialInvoiceConsignor> segments
| Node | Type | Length | Description | Mandatory? |
|---|---|---|---|---|
| <name1> | String | 35 | Name of the consignee / consignor | Yes |
| <street> | String | 35 | Street of the consignee / consignor | Yes |
| <houseNo> | String | 8 | House number of the consignee / consignor | Yes |
| <country> | String | 2 | Country of the consignee / consignor (ISO 3166-2 Code) | Yes |
| <zipCode> | String | 9 | Zipcode of the consignee / consignor. Please do not add prefixes. | Yes |
| <city> | String | 35 | City of the consignee / consignor | Yes |
| <phone> | String | 3 | Phone of the consignee / consignor. For UK numbers, it needs to be the full phone number startingwith the country prefix. | Yes |
| <email> | String | 30 | Email of the consignee / consignor. It must be on an existing domain. | Yes |
| <eoriNumber> | String | 30 | EORI number of the consignee / consignor. Please keep the notes mentioned earlier on this page in mind. | Yes |
| <vatNumber> | String | 30 | VAT number of the consignee / consignor. Please keep the notes mentioned earlier on this page in mind. | Yes |
<commercialInvoiceLine> segment
You can have multiple <commercialInvoiceLine> segments: one for each item you have.
| Node | Type | Length | Description | Mandatory? |
|---|---|---|---|---|
| <customsTarif> | String | 8 | HS code of your item | Yes |
| <receiverCustomsTarif> | String | 8 | Repeat of the HS code of your item | Yes |
| <productCode> | String | 20 | Product code | No |
| <content> | String | 80 | Description of your item | Yes |
| <grossWeight> | Long | 99999 | Weight of this item in total. So if you have 200 pieces of this item, this is the weight of all 200. | Yes |
| <itemsNumber> | Long | 99999 | How many of this items this parcel has | Yes |
| <amountLine> | Long | 99999 | Value of this item in total with two decimal places without separator. So if you have 200 pieces of this item, this is the value of all 200. Ex. If your parcel is worth 12.54€, use value 1254. If it’s worth 550.20€, use value 55020 |
Yes |
| <customsOrigin> | String | 2 | Origin country of this item (ISO 3166-2 Code) | Yes |
| <invoicePosition> | Long | 99999 | Invoice position of this item | Yes |
Sample call B2B
<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>Sender NV</name1>
<name2>Jan Jansens</name2>
<street>Egide Walschaertsstraat</street>
<houseNo>20</houseNo>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<phone>+3215124578</phone>
<email>sender@sendercompany.com</email>
<eoriNumber>1133113311</eoriNumber>
<vatNumber>BE123456</vatNumber>
<destinationCountryRegistration>QQ123456C</destinationCountryRegistration>
</sender>
<recipient>
<name1>British Test</name1>
<street>Receiverstraat</street>
<houseNo>5</houseNo>
<country>GB</country>
<zipCode>LS101AB</zipCode>
<city>Leeds</city>
<phone>+442012345678</phone>
<email>receiver@receivercompany.com</email>
<eoriNumber>7788778877</eoriNumber>
<vatNumber>GB654321</vatNumber>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
<weight>123</weight>
<international>
<parcelType>false</parcelType>
<customsAmount>1400</customsAmount>
<customsCurrency>EUR</customsCurrency>
<customsAmountEx>1400</customsAmountEx>
<customsCurrencyEx>EUR</customsCurrencyEx>
<clearanceCleared>N</clearanceCleared>
<prealertStatus>S03</prealertStatus>
<exportReason>01</exportReason>
<customsTerms>06</customsTerms>
<customsContent>Paperclips</customsContent>
<customsInvoice>12345</customsInvoice>
<customsInvoiceDate>20190624</customsInvoiceDate>
<comment2>QQ123456C</comment2>
<commercialInvoiceConsigneeVatNumber>GB654321</commercialInvoiceConsigneeVatNumber>
<commercialInvoiceConsignee>
<name1>British Test</name1>
<street>Receiverstraat</street>
<houseNo>5</houseNo>
<country>GB</country>
<zipCode>LS101AB</zipCode>
<city>Leeds</city>
<phone>+442012345678</phone>
<email>receiver@receivercompany.com</email>
<eoriNumber>7788778877</eoriNumber>
<vatNumber>GB654321</vatNumber>
</commercialInvoiceConsignee>
<commercialInvoiceConsignor>
<name1>Sender NV</name1>
<name2>Jan Jansens</name2>
<street>Egide Walschaertsstraat</street>
<houseNo>20</houseNo>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<phone>+3215124578</phone>
<email>sender@sendercompany.com</email>
<eoriNumber>1133113311</eoriNumber>
<vatNumber>BE123456</vatNumber>
</commercialInvoiceConsignor>
<commercialInvoiceLine>
<customsTarif>22255222</customsTarif>
<receiverCustomsTarif>5552255</receiverCustomsTarif>
<productCode>88776655</productCode>
<content>Paperclips</content>
<grossWeight>123</grossWeight>
<itemsNumber>1</itemsNumber>
<amountLine>1515</amountLine>
<customsOrigin>BE</customsOrigin>
<invoicePosition>5151</invoicePosition>
</commercialInvoiceLine>
</international>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
Sample call B2B with several different items
<soapenv:Envelope xmlns:ns1="http://dpd.com/common/service/types/ShipmentService/3.3" xmlns:ns="http://dpd.com/common/service/types/Authentication/2.0" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<ns:authentication>
<delisId>KD***</delisId>
<authToken>*****</authToken>
<messageLanguage>nl_NL</messageLanguage>
</ns:authentication>
</soapenv:Header>
<soapenv:Body>
<ns1:storeOrders>
<printOptions>
<printerLanguage>ZPL</printerLanguage>
<paperFormat>A6</paperFormat>
</printOptions>
<order>
<generalShipmentData>
<sendingDepot>0530</sendingDepot>
<product>CL</product>
<sender>
<name1>Sender NV</name1>
<name2>Jan Jansens</name2>
<street>Egide Walschaertsstraat</street>
<houseNo>20</houseNo>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<phone>003215123456</phone>
<email>sender@sendercompany.com</email>
<eoriNumber>1133113311</eoriNumber>
<vatNumber>BE123456</vatNumber>
</sender>
<recipient>
<name1>British Test</name1>
<street>Receiverstraat</street>
<houseNo>5</houseNo>
<country>GB</country>
<zipCode>LS101AB</zipCode>
<city>Leeds</city>
<phone>00446123456</phone>
<email>receiver@receivercompany.com</email>
<eoriNumber>7788778877</eoriNumber>
<vatNumber>GB654321</vatNumber>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>Box 1234</customerReferenceNumber1>
<weight>470</weight>
<international>
<parcelType>false</parcelType>
<customsAmount>2700</customsAmount>
<customsCurrency>EUR</customsCurrency>
<customsAmountEx>2700</customsAmountEx>
<customsCurrencyEx>EUR</customsCurrencyEx>
<clearanceCleared>N</clearanceCleared>
<prealertStatus>S03</prealertStatus>
<exportReason>01</exportReason>
<customsTerms>06</customsTerms>
<customsContent>Paperclips</customsContent>
<customsInvoice>12345</customsInvoice>
<customsInvoiceDate>20190624</customsInvoiceDate>
<comment2>QQ123456C</comment2>
<commercialInvoiceConsigneeVatNumber>GB654321</commercialInvoiceConsigneeVatNumber>
<commercialInvoiceConsignee>
<name1>British Test</name1>
<street>Receiverstraat</street>
<houseNo>5</houseNo>
<country>GB</country>
<zipCode>LS101AB</zipCode>
<city>Leeds</city>
<phone>00446123456</phone>
<email>receiver@receivercompany.com</email>
<eoriNumber>7788778877</eoriNumber>
<vatNumber>GB654321</vatNumber>
</commercialInvoiceConsignee>
<commercialInvoiceConsignor>
<name1>Sender NV</name1>
<name2>Jan Jansens</name2>
<street>Egide Walschaertsstraat</street>
<houseNo>20</houseNo>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<phone>003215123456</phone>
<email>sender@sendercompany.com</email>
<eoriNumber>1133113311</eoriNumber>
<vatNumber>BE123456</vatNumber>
</commercialInvoiceConsignor>
<commercialInvoiceLine>
<customsTarif>2225522</customsTarif>
<receiverCustomsTarif>5552255</receiverCustomsTarif>
<productCode>88776655</productCode>
<content>Paperclips</content>
<grossWeight>230</grossWeight>
<itemsNumber>1</itemsNumber>
<amountLine>1200</amountLine>
<customsOrigin>BE</customsOrigin>
<invoicePosition>5151</invoicePosition>
</commercialInvoiceLine>
<commercialInvoiceLine>
<customsTarif>885588</customsTarif>
<receiverCustomsTarif>558855</receiverCustomsTarif>
<productCode>10101212</productCode>
<content>Pencils</content>
<grossWeight>240</grossWeight>
<itemsNumber>1</itemsNumber>
<amountLine>1500</amountLine>
<customsOrigin>BE</customsOrigin>
<invoicePosition>5151</invoicePosition>
</commercialInvoiceLine>
</international>
</parcels>
<productAndServiceData>
<orderType>consignment</orderType>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
To enter a Pickup Request via API, follow the call structure below.
This is a separate call from your Shipment calls to assure a driver will come to one of your official pickup addresses to collect the parcels you have prepared for a shipment in case you do not have a daily pickup agreed upon.
Please note this is not the same as a Collection Request as described in point 14.
Collection Requests are a way to ask DPD to go pick up a parcel somewhere and bring it to you or a third party. A Pickup Request, as described here, is simply asking DPD to come send a driver over to you so they can pick up the parcels you prepared.
Sample call:
<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>*****</delisId>
<authToken>*****</authToken>
<messageLanguage>en_EN</messageLanguage>
</ns:authentication>
</soapenv:Header>
<soapenv:Body>
<ns1:storeOrders>
<order>
<generalShipmentData>
<sendingDepot>0530</sendingDepot>
<product>CL</product>
<sender>
<name1>Agreed Account Pickup Address</name1>
<street>Your Address 1</street>
<country>BE</country>
<zipCode>3000</zipCode>
<city>Leuven</city>
<type>B</type>
</sender>
<recipient>
<name1>Agreed Account Pickup Address</name1>
<street>Your Address 1</street>
<country>BE</country>
<zipCode>3000</zipCode>
<city>Leuven</city>
<type>B</type>
</recipient>
</generalShipmentData>
<productAndServiceData>
<orderType>pickup information</orderType>
<pickup>
<quantity>1</quantity>
<date>20200615</date>
<day>1</day>
<fromTime1>0900</fromTime1>
<toTime1>1800</toTime1>
</pickup>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
⚠️ Attention !
Do not use this functionality on the LIVE environment before our IT department granted you permission to do so. Orders would be executed and you will be invoiced for the costs, regardless of your testing purposes.
SAMPLE RESPONSE:
<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>
<storeOrdersResponse xmlns="http://dpd.com/common/service/types/ShipmentService/3.3">
<orderResult>
<shipmentResponses>
<mpsId>54263</mpsId>
</shipmentResponses>
</orderResult>
</storeOrdersResponse>
</soap:Body>
</soap:Envelope>
Namespace values:
| <sendingDepot>0530</sendingDepot> | Pickup Depot for Customer | |
| <product>CL</product> | Mandatory, set to ‘CL’ | |
| </sender> | <name1>Agreed Account Pickup Address</name1> | Mandatory, the location name from where the pickup is needed, maxlength=35 |
| </sender> | <street>Your Address 1</street> | Mandatory, the location address from where the pickup is needed, maxlength=35 |
| </sender> | <country>BE</country> | Mandatory, the location country from where the pickup is needed, can only be customer BU country |
| </sender> | <zipCode>3000</zipCode> | Mandatory, the location ZIP from where the pickup is needed |
| </sender> | <city>Leuven</city> | Mandatory, the location city from where the pickup is needed |
| </sender> | <type>B</type> | Mandatory, signifies ‘Business’, so hardcode to ‘B’ |
| <recipient> | <name1>Agreed Account Pickup Address</name1> | Mandatory, to fill out your account details, but neglected in the operational data |
| <recipient> | <street>Your Address 1</street> | Mandatory, to fill out your account details, but neglected in the operational data |
| <recipient> | <country>BE</country> | Mandatory, to fill out your account details, but neglected in the operational data |
| <recipient> | <zipCode>3000</zipCode> | Mandatory, to fill out your account details, but neglected in the operational data |
| <recipient> | <city>Leuven</city> | Mandatory, to fill out your account details, but neglected in the operational data |
| <recipient> | <type>B</type> | Mandatory, to fill out your account details, but neglected in the operational data |
| <orderType>pickup information</orderType> | Mandatory, specifies action, so hardcode to ‘pickup information’ | |
| <quantity>1</quantity> | Mandatory, number of parcels, max 20 | |
| <date>20200615</date> | Mandatory, date of pickup, minimum one business day after the date of request. : YYYYMMDD | |
| <day>1</day> | Mandatory, day of the week: Monday=1, Tuesday=2, … , Friday=5 |
To enter a Collection Request via API, follow the call structure below.
Please note this is not the same as a Pickup Request as described in point 13.
Collection Requests, as described here, are a way to ask DPD to go pick up a parcel somewhere and bring it to you or a third party. A Pickup Request on the other hand, is simply asking DPD to come send a driver over to you so they can pick up the parcels you prepared.
Three addresses are identified with Collection Requests, be sure they are entered in the right namespaces
Sample call:
<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>*****</delisId>
<authToken>*****</authToken>
<messageLanguage>nl_NL</messageLanguage>
</ns:authentication>
</soapenv:Header>
<soapenv:Body>
<ns1:storeOrders>
<order>
<generalShipmentData>
<sendingDepot>0530</sendingDepot>
<product>CL</product>
<sender>
<name1>Your (masked) account ordering the CR</name1>
<street>Office Street 1 (or masked address)</street>
<country>BE</country>
<zipCode>3000</zipCode>
<city>Leuven</city>
<type>B</type>
<phone>+3216000000</phone>
<email>cr-order@test.be</email>
</sender>
<recipient>
<name1>(Masked) Delivery Destination</name1>
<street>CR Destination Street 1</street>
<country>BE</country>
<zipCode>2800</zipCode>
<city>Mechelen</city>
<type>B</type>
<phone>+3215000000</phone>
<email>cr-receiver@test.be</email>
</recipient>
</generalShipmentData>
<parcels>
<customerReferenceNumber1>TEST parcel 1</customerReferenceNumber1>
<weight>100</weight>
<printInfo1OnParcelLabel>true</printInfo1OnParcelLabel>
<info1>Return Item 1</info1>
<info2>123456789</info2>
</parcels>
<productAndServiceData>
<orderType>collection request order</orderType>
<pickup>
<quantity>1</quantity>
<date>20200615</date>
<day>1</day>
<collectionRequestAddress>
<name1>Pickup Place for Goods</name1>
<street>CR Pickup Street 1</street>
<country>BE</country>
<zipCode>2000</zipCode>
<city>Antwerpen</city>
<type>B</type>
<phone>+3230000000</phone>
<email>pickupaddress@test.be</email>
</collectionRequestAddress>
</pickup>
</productAndServiceData>
</order>
</ns1:storeOrders>
</soapenv:Body>
</soapenv:Envelope>
⚠️ Attention !
Do not use this functionality on the LIVE environment before our IT department granted you permission to do so. Orders would be executed and you will be invoiced for the costs, regardless of your testing purposes.
SAMPLE RESPONSE:
<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>
<storeOrdersResponse xmlns="http://dpd.com/common/service/types/ShipmentService/3.3">
<orderResult>
<shipmentResponses>
<parcelInformation>
<dpdReference/>
</parcelInformation>
</shipmentResponses>
</orderResult>
</storeOrdersResponse>
</soap:Body>
</soap:Envelope>
Namespace values:
| <sendingDepot> | Depot belonging to the account you are using to give the CR order. | |
| <product> | Choose ‘CL’, can be hardcoded, the productcode will be overruled anyhow by the namespace <orderType> | |
| <sender> | <name1> | The account name giving the order for the CR. Can be Customer or a masked name of your partner. This address is neglected operationally. |
| <sender> | <street> | The account address giving the order for the CR. Can be Customer or a masked address of your partner. This address is neglected operationally. |
| <sender> | <country> | The account country belonging to the name and address above. Has to be BE to make it a Belgian order |
| <sender> | <zipCode> | The account ZIP belonging to the name and address above |
| <sender> | <city> | The account city, corresponding to the ZIP above |
| <sender> | <type> | Choose ‘B’, can be hardcoded. Signifies this address is a ‘Business’ address (versus P = ‘Private’) |
| <sender> | <phone> | Optional. Use form +32########### |
| <sender> | <email> | Optional |
| <recipient> | <name1> | The actual destination name of the parcel after pickup and transit. Can be Customer or a masked name of your partner. |
| <recipient> | <street> | The actual destination address of the parcel after pickup and transit. Can be Customer or a masked -but real- address of your partner. |
| <recipient> | <country> | The actual country belonging to the name and address above. Can be any EU country. |
| <recipient> | <zipCode> | The actual ZIP belonging to the name and address above |
| <recipient> | <city> | The actual city, corresponding to the ZIP above |
| <recipient> | <type> | Choose ‘B’, can be hardcoded. Signifies this address is a ‘Business’ address (versus P = ‘Private’) |
| <recipient> | <phone> | Optional, but highly recommended. Use form +32########### |
| <recipient> | <email> | Optional |
| <customerReferenceNumber1> | Order Reference. This will also show on the label. | |
| <weight> | Mandatory. Wheigt is entered in decagrams. So ‘100’ translates to 1kg. | |
| <printInfo1OnParcelLabel> | Boolean. Set to ‘true’ if you want the namespace value for <info1> (below) printed on the label | |
| <info1> | Parcel Reference 1 for the CR (printable on the label) For now, please make 1 call per CR, multiparcel CR can be supported later on. | |
| <info2> | Parcel Reference 2 for the CR (only visible in data/reporting, not on label) For now, please make 1 call per CR, multiparcel CR can be supported later on. | |
| <orderType> | Choose ‘collection order request’, can be hardcoded. | |
| <quantity> | Number of parcels to be collected. For now, please make 1 call per CR, multiparcel CR can be supported later on. | |
| <date> | The date for the CR to be executed. Needs to be at least the next business day. Cut-off is 16h00 CET (minus some minutes for data handling/forwarding) Make last order of the day at 15h30 CET | |
| <day> | Day of the week, as verification. ‘1’ is Monday, ‘2’ is Tuesday, … ,’5′ is Friday | |
| <collectionRequestAddress> | <name1> | The pickup address of the CR. Name of the original location the driver needs to go to. The end customer returning goods. |
| <collectionRequestAddress> | <street> | The pickup address of the CR. Address of the original location the driver needs to go to. The end customer returning goods. |
| <collectionRequestAddress> | <country> | The pickup address of the CR. Country of the original location the driver needs to go to. The end customer returning goods. |
| <collectionRequestAddress> | <zipCode> | The pickup address of the CR. ZIP of the original location the driver needs to go to. The end customer returning goods. |
| <collectionRequestAddress> | <city> | The pickup address of the CR. City of the original location the driver needs to go to. The end customer returning goods. |
| <collectionRequestAddress> | <type> | Choose ‘B’ or ‘P’. Signifies this address is a ‘Business’ or ‘Private’. |
| <collectionRequestAddress> | <phone> | Optional, but highly recommended. Use form +32########### |
| <collectionRequestAddress> | <email> | Optional, but highly recommended. |
Any type of service code has a “small” variant. You can have a Small B2B shipment, Small B2C shipment, Small Parcelshop shipments, etc.
There is no specific code or call to make you shipment be considered as small: the system will automatically turn your parcel into the small variant based on the weight of the parcel: if the value in the <weight> field within the <parcel> instance is lower than 3 kg, the system will turn your shipment in a small parcel shipment by itself.
Download the full original Web Service Reference Documentation (PDF)
The DPD Belux Shipper API strongly resembles the DPD NL and DPD CH versions, but is still different and has other endpoints. Originally Shipper API was built in the image of the DPD DE API. Some references in the downloadable documentation above still relate to it, but can be ignored. This documentation contains more examples, but is no longer updated
This section provides a detailed list of common errors you may encounter while using our API, along with explanations, root causes, and step-by-step solutions. If you need further assistance, please contact our support team it.cs@dpd.be.
Important Note:
When contacting our support team about an error you cannot resolve, please include the following details:
aa4ffae0-3967-4856-9276-9f6eca7b28a1.Providing this information helps us quickly locate and resolve your issue.
Description:
This error occurs when a pickup request contains a date in the past.
Root Cause:
The <date> field in the <pickup> request is set to a date that has already passed. The system validates pickup dates to ensure they are scheduled for today or a future date.
Solution:
Example:
<pickup> <date>20250110</date> </pickup>
Description:
This error is triggered when an invalid or unapproved email domain is provided in the request.
Root Cause:
The domain of the email address does not match the approved list of domains.
Solution:
Example:
<email>valid@approveddomain.com</email>
Description:
Authentication failed due to invalid credentials or an expired token.
Root Cause:
Solution:
Example Header:
<delisId>BE1234</delisId> <password>PASSWORD</password>
Description:
The parcel weight exceeds the system’s maximum allowable limit.
Root Cause:
The <weight> field value is greater than the permitted maximum.
Solution:
Example:
<weight>90</weight>
Description:
This error occurs when the <parcelShopId> provided in the request is incorrect or invalid.
Root Cause:
The system was unable to locate the parcel shop associated with the specified <parcelShopId>.
Solution:
Example:
<parcelShopId>836920114</parcelShopId>
Description:
This error occurs when the destination ZIP code provided in the request is invalid or does not match the corresponding country.
Root Cause:
Solution:
Example of Invalid Request:
<country>FR</country> <zipCode>1000</zipCode> <!-- Incorrect ZIP code for France -->
Corrected Request:
<country>FR</country> <zipCode>75001</zipCode>
Description:
This error occurs when the structure of your API request does not conform to the required schema or contains invalid values.
Root Cause:
Solution:
Example of Invalid Request:
<pickup> <date>19-10-2024</date> <!-- Incorrect date format --> </pickup>
Corrected Request:
<pickup> <date>20241019</date> <!-- Correct date format (YYYYMMDD) --> </pickup>
Home » Knowledgebase » Shipper Webservice » Shipment service (all products)
| Cookie | Duration | Description |
|---|---|---|
| viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
| cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
| cookielawinfo-checbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
| cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
| cookielawinfo-checbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
| cookielawinfo-checbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |