How to create any operational order with the webservice

  1. Shipment service

    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:

    • Labels generated on the STAGE environment are not valid and may not be used for live shipments

    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.
    No
    <mpsCustomerReferenceNumber2> String 35 Consignment customer reference number 2.
    Shown on label and included in electronic data, but not shown on label for Collection Requests.
    No
    <mpsCustomerReferenceNumber3> String 35 Consignment customer reference number 3.
    Not shown on any label, but included in electronic data.
    No
    <mpsCustomerReferenceNumber4> String 35 Consignment customer reference number 4.
    Not shown on any label, but included in electronic data.
    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:

    • name1
    • name2
    • street
    • street2
    • 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
    <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. Yes
    <hazardousLimitedQuantities> n/a n/a Not used, not shown on label. Do not include in the call. No
    <HigherInsurance> n/a n/a Not used, not shown on label. Do not include in the call. 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.
    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 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. 

  2. DPD Business (B2B) Shipment

    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>

     

  3. DPD Home (B2C) Shipment

    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:

    • <channel>: the type of Predict you wish to send. Using value 1 will send an email, value 3 an SMS.
    • <value>: the email address or portable phone number the message must be sent to. Obviously, use a valid email address if the channel is 1 and a valid phone number if the channel is 3.
      Note: phone number must be in format +<countrycode>#<rest of the number> so if the number is for example 0032479123456, use value +32#479123456
    • <language>: The language in which the Predict message should be sent in ISO639-1 format: FR, NL, EN, etc. Keep in mind that while BE is a correct country code, BE as a language doesn’t exist. It should be one of the country languages or EN.

    Attention:

    • Use the exact same e-mail address/phone number for DPD Home shipment in the recipient segment as in the predict segment.
    • Channel 1 is only for email and channel 3 only for SMS. No Predict will be sent if you try to use an email address with channel 3 or a phone number with channel 1.

    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>
  4. DPD Business Predict (B2B) Shipment

    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>
  5. DPD Shop (B2C) Shipment

    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:

     

    • <parcelShopId>: this is the ID of the Parcelshop you want DPD to drop the shipment at. This ID is acquired thought the Parcelshopfinder service (see separate section for this). In the Parcelshopfinder service, you will receive a response containing <parcelShopId>. It’s this value you use for this field.
    • <parcelShopNotification>: this contain the details of the Predict message that will be sent to the receiver to let him know his parcel arrived in the shop. Please note that you use <parcelShopNotification> here as opposed to <predict> for a B2C Predict shipment without Parcelshop.
      Parcelshopnotification has a few child segments of it’s own, which are similar to those of <predict>:

      • <channel>: the type of Predict you wish to send. Using value 1 will send an email, value 3 an SMS.
      • <value>: the email address or portable phone number the message must be sent to. Obviously, use a valid email address if the channel is 1 and a valid phone number if the channel is 3.
        Note: phone number must be in format +<countrycode>#<rest of the number> so if the number is for example 0032479123456, use value +32@479123456
      • <language>: The language in which the Predict message should be sent in ISO2 format: FR, NL, EN, etc. Keep in mind that while BE is a correct country code, BE as a language doesn’t exist. It should be one of the country languages or EN.

    Attention:

    • Use the exact same e-mail address/phone number for DPD Shop shipment in the recipient segment as in the parcelShopNotification segment.
    • A maximum of 10 ParcelshopID’s per call can be obtained
    • Channel 1 is only for email and channel 3 only for SMS. No Predict will be sent if you try to use an email address with channel 3 or a phone number with channel 1.

     

    ! Attention ! Do not store the ParcelshopID’s you obtain from a parcelshopFinderService call for any other purpose than consulting previous shipments data. Parcelshops will announce closing or holidays and your shipment calls will be rejected when they contain a – for that time – invalid ParcelshopID.

    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.

     

    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>

     

  6. Express 10, 12, 18 Guarantee Shipment

    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>
    <contact>Mr. Contactman</contact> <!-- Mandatory for Express -->
    <phone>015123456</phone><!-- Mandatory for Express -->
    <type>B</type>
    </recipient>
    </generalShipmentData>
    <parcels>
    <customerReferenceNumber1>Box 1234</customerReferenceNumber1>
    </parcels>
    <productAndServiceData>
    <orderType>consignment</orderType>
    </productAndServiceData>
    </order>
    </ns1:storeOrders>
    </soapenv:Body>
    </soapenv:Envelope>

     

  7. International non-EU Shipments

    • For other shipments outside the EU that aren’t the UK, please stay on this page.
    • For UK Brexit Shipments, go to the dedicated point 12.

    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)

     

  8. Shop Return Shipment

    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>

     

  9. Saturday Delivery Shipment

    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>
  10. Tyres (bulk) Shipment

    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>
  11. Ex-Works Shipment

    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>
  12. Shipments to United Kingdom after Brexit

    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.

    It’s not possible to send multi-colli shipments to the UK. You can only send single-parcel shipments. Your parcel can however contain multiple items.

    It’s also only possible to send DPD Business and DPD Home shipments (regular B2B and regular B2C). Saturday, Collection Request, Express, Parcelshop, etc are not possible.

    Other changes

    • Sender phone (<phone> field under <sender>) is mandatory.
      Note: phone number must be format +<country code><rest of the number> in all fields. For example: +3215124578 or +442012345678.
    • Sender email (<email> field under <sender>) is mandatory.
      Note: the email must be on an existing domain.
    • Receiver phone (<phone> field under <recipient>) is mandatory and in correct format.
    • Receiver email (<email> field under <recipient>) is mandatory and on an existing domain.
    • Sender and Receiver house number must be in their separate fields <houseNo>. This has to be the case for the <sender>, <recipient>, <commercialInvoiceConsignee> and <commercialInvoiceConsignor> segments.
    • The value in the <weight> field in the <parcels> segment needs to be the total of all <grossweight> values in the <commercialInvoiceLine> segment.

    Notes about EORI, HMRC and VAT number

    • The Sender VAT and EORI number are always mandatory and must be included in two segments: the <sender> segment and the <commercialInvoiceConsignor> segment.
    • The Receiver VAT and EORI number must be given in the <receiver> segment, the <commercialInvoiceConsignee> segment and in the <commercialInvoiceConsigneeVatNumber> field. However, these values can vary depending whether or not your shipment is B2B or B2C:
      For B2B Shipments: these fields must contain the Receiver EORI and VAT number.
      For B2C Shipments: these fields must contain the Sender EORI and VAT number, since B2C receivers don’t have a VAT or EORI.
    • The HMRC number of the Sender must be included in the <comment2> field of the <international> segment.
      AND
      The HMRC number of the Sender must be included in the <destinationCountryRegistration> field of the <sender> segment.

    <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
    receiver) is also possible, but only with approval from DPD.

    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>
  13. Pickup Orders

    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.

    !! Attention !!

    • You can develop on the STAGE environment and contact DPD Customer IT before proceeding to the LIVE environment. We will help you validate testing.
    • The response will not return anything except for a MpsID (= order ID). No printable confirmation will be generated. The driver will come and collect the parcels at the specified location. A request is definitive and will be charged by invoice if accepted by the API, even if the request was composed of wrong or incomplete data.
    • Orders must be entered before 22h00 to be executed the next business day.
    • Contact you pickup depot to cancel/modify your pickup request manually. ( Mechelen: transport.530@dpd.be / Aalter: transport.536@dpd.be / Courcelles: transport.534@dpd.be / Flémalle: transport.532@dpd.be / Luxembourg: transport.539@dpd.lu)

     

    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
  14. Collection Request Orders

    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

    • Sender: This is your data, our customer, who orders the parcel collection to take place at point A and be delivered to point B. This address is not the place where the parcel will be picked up nor delivered. The fields are mandatory but the data in these namespaces can be masked would you like to do so.
    • Receiver: This is the location where the parcel will be delivered.
    • Collection Request Address: This is the location where the driver will present himself to pick up the parcel. The driver will bring the label himself and attach it to the parcel at pickup.

    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.

    !! Attention !!

    • You can develop on the STAGE environment and contact your Sales representative meanwhile to discuss your go live of this product for your account. Contact DPD Customer IT before proceeding to the LIVE environment. We will help you validate testing.
    • The response will not return anything except for a reference. No label will be generated. The driver will take the label to the place of pickup. A request is definitive and will be charged by invoice if accepted by the API, even if the request was composed of wrong or incomplete data.
    • Collection Request orders need to be transmitted before 15h30 to assure next business day exectution. All collection requests received after the daily cut-off, will be moved to the following business day.
    • Contact our Customer Care department to cancel/modify your Collection Request manually, before 15h30 of the day the order was placed.

     

    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.

     

  15. Small Parcel

    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.

  16. Printing a QR code instead of a normal label

    Note: this only works with v3.5 of the endpoint and is not supported by the more widely used v3.4 and 3.3.
    https://wsshipper.dpd.be/soap/wsdl/ShipmentServiceV35.wsdl

    It is possible to print the label in QR code format (also called Digital Label or Digilabel). This would result in a QR code like the one below as opposed to a regular label.
    The QR code is returned in Base64 format, just like the regular label.

    This can be scanned. Since this QR code contains the Shipment ID and the parcelnumber, the proper label can then be reprinted by using the Reprint label service

    In most cases, this QR code functionality is useful for when you want to give your receiver the option to return his parcel via DPD Parcelshop. Your receiver will no longer have to physically print a label themselves. Instead, provide them with this digital QR code which they can then show on their Smartphone to the parcelshop. The parcelshop can scan it, retrieve the normal label and then physically print it and stick it on the parcel.

    To generate the QR code, you have to add the <dropOffType> field in the <printOptions> in your shipment call. The accepted values for this field are:

    • FULL_LABEL : prints only the regular label (default value)
    • QR_CODE : prints only the QR code
    • BOTH : prints both QR code and regular label.

    This is also described above in point 1 –> Request Parameters –> <printOptions> section.

  17. Older documentation and other API's

    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

Was this post helpful?(Required)