Welcome to the API documentation for the DPD Fresh Webservices

    This wiki describes how to integrate DPD Shipper Webservices into your own application. This API is part of the larger API structure used by DPD non-food shippers and will share it’s way of working and logic for the most part. So all theoretical (non-content!) documentation found on https://doc.dpd.be/shipper-webservice can be consulted for deeper understanding of the DPD Fresh API endpoints

     

    These services are available and tested currently for DPD Fresh:

    Will be added later on after testing:

    • The Parcel LifeCycle Service to request the status of your parcel.
    • The End-of-Day service to compose a list of your shipments.

    For the time being, only SOAP 1.1 calls are supported. REST services will be made available later on. Please use the ‘GET’ method to obtain valid responses from both environments.

    Our Webservices have a Staging environment and a Live environment. Staging is for tests and will produce labels that are not valid (which can be recognized because there’s “DEMO” written on them)
    Live is for making actual shipments. It’s recommended to properly test your integration solution first, which you can use the Staging environment for.
    By integrating your system via our services your integration will always be up to speed with the latest developments in the DPD System.

     

    Our KPIs

    The KPI’s mentioned here are the system response times for the live environment. The stage environment have no KPI’s. External factors like narrow-band internet, routings and other factors outside DPD systems, are non measurable and out of scope.

    What you can expect

    1. Login Service (max 0.5 sec.)
    2. Shipment Service :: Depending on the amount of labels in the request (between 1 and 20) max 5 sec.

    What we expect

    • Please refer to the API Develop Guidelines document (uploaded here soon)

    Checklist to do to go live

    1. Contact your sales contact and request a staging account for the DPD Shipper Webservices.
    2. You will receive stage credentials from DPD Customer IT.
    3. Start developing against our web services (Put your IT dep. in contact with DPD IT for sparring purposes)
    4. Generate a label for each product you wish to use
    5. Send these labels (PDF) to your responsible DPD IT department (IT.CS@dpd.be)
    6. Fix possible issues requested by DPD IT CS
    7. Go back to step 4 (if applicable)
    8. Request switch to live environment
    9. Test products with live parcels. (mandatory when requesting driver pickups)
  1. Creating Shipments

    To create a valid shipment for DPD Fresh, you will need to obtain a login token first from the Loginservice.
    Please refer to https://doc.dpd.be/node/34 first.

    Creating a Shipment call will return a confirmation and label(s) in the requested format (PDF or ZPL) and size (1x A6 or 4x A6 on A4)
    You can also request a pickup of your goods in the call in the same effort. This will assure a driver to come pick up your goods.
    The labels are immediately valid for shipment as DPD Fresh will be pre-alerted of the request by the webservice

    The call structure is similar to the DPD (regular) shipments, but a different endpoint is used and a few mandatory fields have been added.
    WSDL: https://wsshipper.dpd.be/soap/WSDL/ShipmentServiceV34.wsdl

    ! – Do not use the above endpoint for non-Fresh, non-Freeze shipments – !
    ! – Also be careful when testing, the above endpoint will register your pickup request as a live valid request. A driver will be sent to come pick up your goods. – !

     

    Request Parameters

    <authentication> section
    Node Type Length Description Mandatory?
    <delisId> String 8 to 10 Your Delis ID provided by DPD Yes
    <authToken> String 64 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, resulting in 1 label on one A6 label or 4 labels on one A4 page. Yes
    <generalShipmentData> section
    Node Type Length Description Mandatory?
    <mpsCustomerReferenceNumber1> String 35 Consignment customer reference number 1 No
    <mpsCustomerReferenceNumber2> String 35 Consignment customer reference number 2 No
    <sendingDepot> String 4 DPD Depot you belong to. DPD Can tell you which one this is. Yes
    <product> String 5 or 6 FRESH or FREEZE Yes
    <sender> section
    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. You can add the house number here. Yes
    <street2> String 35 Street of Sender’s address owner, aditional info No
    <houseNo> String 8 Only needed if you didn’t add the houseno in the <street> field 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
    <type> String 1 Always B Yes
    <contact> String 35 Contact person of Sender’s address owner No
    <phone> String 30 Format +<country prefix><full number> Ex: +32470123456 No
    <email> String 40 Email address of Sender’s address owner. No
    <comment> String 70 Comment on Sender’s address owner. This is a free field. No
    <recipient> section
    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. You can add the house number here. Yes
    <street2> String 35 Street of Sender’s address owner, aditional info No
    <houseNo> String 8 Only needed if you didn’t add the houseno in the <street> field 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
    <type> String 1 Use value B if it’s a business or P if it’s a private person Yes
    <contact> String 35 Contact person of Sender’s address owner No
    <phone> String 30 Format +<country prefix><full number> Ex: +32470123456 Yes
    <email> String 40 Email address of Sender’s address owner. Yes
    <comment> String 70 Comment on Sender’s address owner. This is a free field. No
    <parcel> section
    You can have multiple parcels within a single shipment (multi-parcel shipment) by having more than one <parcel></parcel> instance.
    Node Type Length Description Mandatory?
    <customerReferenceNumber1> String Max 35 Printed on Label as Reference 1 No
    <customerReferenceNumber2> String Max 35 Printed on Label as Reference 2 No
    <volume> Int n/a length/width/height in format LLLWWWHHH in cm without separators No
    <weight> Int n/a Parcel weight in decagrams without decimal delimiter. Ex. 315 = 3,15kg Yes
    <printInfo1OnParcelLabel> 1 or 0 1 Yes if used to print info on label No
    <info1> String 30 Info fot the label No
    <info2> String 30 Info fot the label No
    <goodsExpirationDate> String 8 Expiration date in YYYYMMDD Yes
    <goodsMinimumStorageTemperature> String 1 to 5 0 for FRESH – 1800 for FREEZE Yes
    <goodsMaximumStorageTemperature> String 1 to 5 400 for FRESH – 3000 for FREEZE Yes
    <goodsDescription> String 30 Description of the food items in the parcel Yes
    <ProductAndServiceData> section
    Node Type Length Description Mandatory?
    <orderType> String 50 Use value consignment. Yes
    <tour> String 3 501 for FRESH – 502 for FREEZE – 503 for DRY/AMBIENT Yes
    <quantity>1</quantity> String 1 to 2 Number of parcels to be picked op Yes
    <date>20210205</date> String 8 Resuested pickup date in YYYYMMDD Yes
    <day>5</day> String 1 Day of the week (1=Monday, 2=Tuesday,…,7=Sunday) Yes
    <fromTime1>1000</fromTime1> String 4 From time window 1 (before noon – or whole day) HHMM Yes
    <toTime1>1200</toTime1> String 4 To time window 1 (before noon – or whole day) HHMM Yes
    <fromTime2>1400</fromTime2> String 4 From time window 2 (after noon) HHMM No
    <toTime2>1500</toTime2> String 4 To time window 2 (after noon) HHMM No
    <collectionRequestAddress> section
    Node Type Length Description Mandatory?
    <name1> String 35 Name Pickup Address Yes
    <name2> String 35 Name Pickup Address (2) No
    <street> String 35 Street of Pickup Address You can add the house number here. Yes
    <street2> String 35 Street of Pickup Address (2) No
    <houseNo> String 8 Only needed if you didn’t add the houseno in the <street> field No
    <country> String 2 Country of Pickup address in ISO 3166-1 alpha-2 code Yes
    <zipCode> String 9 Zip code of Pickup Address. Please do not add prefixes. Yes
    <city> String 35 City/town of Pickup Address Yes
    <type> String 1 Use value B Yes
    <contact> String 35 Contact person of Pickup Address No
    <phone> String 30 Format +<country prefix><full number> Ex: +32470123456 Yes
    <email> String 40 Email address of Pickup Address. Yes
    <comment> String 70 Comment on Pickup Address. This is a free field. No
    <predict> section
    Node Type Length Description Mandatory?
    <channel> n/a 1 1 for email, 3 for SMS Yes
    <value> n/a 30 Use the corresponding value of email or phone from recipient section Yes
    <language> n/a 2 Notification language: NL, FR, EN, DE Yes

     

    FRESH Shipment

     <soapenv:Header>
    <ns:authentication>
    <delisId>DELISID</delisId>
    <authToken>Authtoken_from_2.1_LoginService</authToken>
    <messageLanguage>en_EN</messageLanguage>
    </ns:authentication>
    </soapenv:Header>

    <soapenv:Body>
    <ns1:storeOrders>
    <printOptions>
    <printerLanguage>PDF</printerLanguage>
    <paperFormat>A6</paperFormat>
    </printOptions>
    <order>
    <generalShipmentData>
    <mpsCustomerReferenceNumber1>Shipment Reference 1</mpsCustomerReferenceNumber1>
    <mpsCustomerReferenceNumber2> Shipment Reference 2</mpsCustomerReferenceNumber2>
    <sendingDepot>0545</sendingDepot>
    <product>FRESH</product>
    <mpsExpectedSendingDate>20210205</mpsExpectedSendingDate>
    <mpsExpectedSendingTime>110000</mpsExpectedSendingTime>
    <sender>
    <name1>Delicious Goods NV/SA (you)</name1>
    <name2>Online Shop</name2>
    <street>Your official business address</street>
    <houseNo>12</houseNo>
    <country>BE</country>
    <zipCode>1000</zipCode>
    <city>Brussel</city>
    <type>B</type>
    <contact>Chef Kim</contact>
    <phone>+32499000000</phone>
    <email>deliciousgoods@gmail.com</email>
    </sender>
    <recipient>
    <name1>Mr. and Mrs. Hungry</name1>
    <name2>optional</name2>
    <street>Rue Gourmet</street>
    <houseNo>12</houseNo>
    <street2> optional</street2>
    <country>BE</country>
    <zipCode>1000</zipCode>
    <city>Brussel</city>
    <type>P</type>
    <contact>Contact name</contact>
    <phone>+32499000001</phone>
    <email>happyhomecookingcustomers@gmail.com</email>
    <comment>additional comment if applicable</comment>
    </recipient>
    </generalShipmentData>
    <parcels>
    <customerReferenceNumber1>Customer Reference 1</customerReferenceNumber1>
    <customerReferenceNumber2> Customer Reference 2</customerReferenceNumber2>
    <weight>100</weight>
    <printInfo1OnParcelLabel>1</printInfo1OnParcelLabel>
    <info1>Info for the label</info1>
    <info2>Info for the label</info2>
    <goodsExpirationDate>20211214</goodsExpirationDate>
    <goodsMinimumStorageTemperature>0</goodsMinimumStorageTemperature>
    <goodsMaximumStorageTemperature>400</goodsMaximumStorageTemperature>
    <goodsDescription>Deluxe Home Menu for 4</goodsDescription>
    </parcels>
    <productAndServiceData>
    <orderType>consignment</orderType>
    <pickup>
    <tour>501</tour>
    <quantity>1</quantity>
    <date>20210205</date>
    <day>5</day>
    <fromTime1>1000</fromTime1>
    <toTime1>1200</toTime1>
    <fromTime2>1400</fromTime2>
    <toTime2>1500</toTime2>
    <collectionRequestAddress>
    <name1>Prep and Shipping Address</name1>
    <name2>Chef Kim’s Menu’s</name2>
    <street>Prep and Shipping Address</street>
    <houseNo>15</houseNo>
    <street2>Pickup counter DPD Fresh Orders</street2>
    <country>BE</country>
    <zipCode>2000</zipCode>
    <city>Antwerp</city>
    <type>P</type>
    <contact>Chef Kim</contact>
    <phone>+32499000002</phone>
    <email> chefkim.delicousgoods@gmail.com</email>
    <comment>Comment If applicable</comment>
    </collectionRequestAddress>
    </pickup>
    <predict>
    <channel>1</channel>
    <value> happyhomecookingcustomers@gmail.com </value>
    <language>EN</language>
    </predict>
    </productAndServiceData>
    </order>
    </ns1:storeOrders>
    </soapenv:Body>

    FREEZE Shipment



    <soapenv:Header>
    <ns:authentication>
    <delisId>DELISID</delisId>
    <authToken>Authtoken_from_2.1_LoginService</authToken>
    <messageLanguage>en_EN</messageLanguage>
    </ns:authentication>
    </soapenv:Header> <soapenv:Body>
    <ns1:storeOrders>
    <printOptions>
    <printerLanguage>PDF</printerLanguage>
    <paperFormat>A6</paperFormat>
    </printOptions>
    <order>
    <generalShipmentData>
    <mpsCustomerReferenceNumber1>Shipment Reference 1</mpsCustomerReferenceNumber1>
    <mpsCustomerReferenceNumber2> Shipment Reference 2</mpsCustomerReferenceNumber2>
    <sendingDepot>0545</sendingDepot>
    <product>FREEZE</product>
    <mpsExpectedSendingDate>20210205</mpsExpectedSendingDate>
    <mpsExpectedSendingTime>110000</mpsExpectedSendingTime>
    <sender>
    <name1>Delicious Goods NV/SA (you)</name1>
    <name2>Online Shop</name2>
    <street>Your official business address</street>
    <houseNo>12</houseNo>
    <country>BE</country>
    <zipCode>1000</zipCode>
    <city>Brussel</city>
    <type>B</type>
    <contact>Chef Kim</contact>
    <phone>+32499000000</phone>
    <email>deliciousgoods@gmail.com</email>
    </sender>
    <recipient>
    <name1>Mr. and Mrs. Hungry</name1>
    <name2>optional</name2>
    <street>Rue Gourmet</street>
    <houseNo>12</houseNo>
    <street2> optional</street2>
    <country>BE</country>
    <zipCode>1000</zipCode>
    <city>Brussel</city>
    <type>P</type>
    <contact>Contact name</contact>
    <phone>+32499000001</phone>
    <email>happyhomecookingcustomers@gmail.com</email>
    <comment>additional comment if applicable</comment>
    </recipient>
    </generalShipmentData>
    <parcels>
    <customerReferenceNumber1>Customer Reference 1</customerReferenceNumber1>
    <customerReferenceNumber2> Customer Reference 2</customerReferenceNumber2>
    <weight>100</weight>
    <printInfo1OnParcelLabel>1</printInfo1OnParcelLabel>
    <info1>Info for the label</info1>
    <info2>Info for the label</info2>
    <goodsExpirationDate>20211214</goodsExpirationDate>
    <goodsMinimumStorageTemperature>-3000</goodsMinimumStorageTemperature>
    <goodsMaximumStorageTemperature>-1800</goodsMaximumStorageTemperature>
    <goodsDescription>Frozen Dessert Cake 8 person</goodsDescription>
    </parcels>
    <productAndServiceData>
    <orderType>consignment</orderType>
    <pickup>
    <tour>502</tour>
    <quantity>1</quantity>
    <date>20210205</date>
    <day>5</day>
    <fromTime1>1000</fromTime1>
    <toTime1>1200</toTime1>
    <fromTime2>1400</fromTime2>
    <toTime2>1500</toTime2>
    <collectionRequestAddress>
    <name1>Prep and Shipping Address</name1>
    <name2>Chef Kim’s Menu’s</name2>
    <street>Prep and Shipping Address</street>
    <houseNo>15</houseNo>
    <street2>Pickup counter DPD Freeze Orders</street2>
    <country>BE</country>
    <zipCode>2000</zipCode>
    <city>Antwerp</city>
    <type>P</type>
    <contact>Chef Kim</contact>
    <phone>+32499000002</phone>
    <email> chefkim.delicousgoods@gmail.com</email>
    <comment>Comment If applicable</comment>
    </collectionRequestAddress>
    </pickup>
    <predict>
    <channel>1</channel>
    <value> happyhomecookingcustomers@gmail.com </value>
    <language>EN</language>
    </predict>
    </productAndServiceData>
    </order>
    </ns1:storeOrders>
    </soapenv:Body>
Was this post helpful?(Required)