For shipment volumes up to 5000 parcels per month, our preferred solution and the best practice in our business is to integrate with our web based API
It's an easy and ready solution replacing the continued self-composition of data and labels to ever evolving DPD Routing, Data and Label standards.
The greatest benefits of moving away from Self-integration and into our robust and stable web based API ‘Shipper Webservice’ are:
- Always up to date Routing. Routing is automatically calculated by the API and is ever up to date. This benefit discards your IT having to manually upload and update routing files each 4 months. In the near future bimonthly and monthly updates will become the new standard. In times of network disturbance by external factors even daily updates will be issued. Our web based API takes care of this for you, hands off. Out of date routings cause your parcels to be delayed because of a manual relabelling action required by our Operations.
- Maximum Data Quality. Data quality is becoming increasingly important up to a point where incomplete, missing or faulty data will result in surcharges at your expense in the upcoming years. Again, parcels with bad or missing data are delayed. Our web based API will perform all necessary checks on data quality at the time the label is issued. If data is somehow incomplete, the API will indicate which part needs completion. Only operationally valid shipments can be created, resulting in a maximum performance with no possible delays because of data input issues.
- Ever perfect label design. Our API renders fully compliant labels in ZPL or PDF. Label requirements will be evolving in the next year and years to come. To remain compliant, your label designer will have to re-invest effort each time requirements are updated. An upcoming standard is the 2D-barcode, which will need to be implemented in your printing setup. Later on other operational additions might be required. Also non-DPD additions to self composed extended labels such as customised barcodes and text might become restricted if they are causing impact on our scan and OCR software performance. This implicates mandatory redevelopment at your end to reach compliance.
- Reliable uptime and performance. The API has an average response time around 500ms for label creation and way below that for other services. A general uptime of 99,95% is guaranteed.
- Always up to date parcelshop listing. Instead of having to implement CPF logic or communicating with a separate API or local software for Parcelshop ID retrieval, Shipper Webservice API does that all in one. A call towards the Parcelshopfinderservice gives back the ID you or your end customer is requesting. This ID is immediately recognised by the Shipment service and creates your compliant PSD Shipment without any concern.
- On request parcel tracking. If chosen to integrate, the parcellifecycleservice will provide your end customers or your staff the means to retrieve parcel delivery status with a single click. This service is not meant for bulk event data requests, but it is a valuable add-on for your tracing purposes and customer experience. This service is only available to API integrated customers.
- End-of-Day list printing. A daily manifest -or whatever time frame you specify- is at your disposal to print out. These A4 PDF’s can be used for driver sing-off, internal archiving or as a handout for your staff handling the goods.
- Requesting Pickup’s and Collection Requests via API. Instead of working separately with Shipper Online to create Pickup and Collection Requests, you can automate these products via API as well.
- Reduce your IT Effort and Costs. Integrating your ERP/WMS with our API will save you much effort and resources over time. Once established, tested and set live, these services maintain themselves. DPD Shipper Webservice is desgned to meet 2021 and onwards standards and will not be changing any time soon, meaning existing services will remain. Only new endpoints will be added. It is our premium shipment tool, designed to meet our growth expectations. Linking to our web based API puts you ahead of upcoming changes and will ease the stress on your budget and planning you would face when the Label and Data specs will tighten for Self-Integrated customers from 2021 on.
- Support guaranteed by SLA’s. Our first and second line in-house support will help configurate and align your integration until your desired results are achieved or they will help you modify to accommodate your new wishes. Our third line support and development guarantees 24/7 support towards uptime and performance.
This API is however not intended for following customer profiles:
- Your shipment volume exceeds 5000 shipments per month.
- Your warehouse is fully hands-off automated and your order processing lines are dependent on immediate label creation without any response delay or downtime. Meaning an API hiccup would cause full lines to halt. In this case we do advise you to continue Self-Integration. We commit to 99,95% uptime, not 100%
- Your shipment activities are only taking place over night, meaning any issue with the API on account level would only surface outside regular business hours.
- You are already integrated with DPD through a preferred partner or label broker who is known to us for accommodating multiple customers within the DPD network and which’ core business is to integrate distributors with parcel handling companies.
- Your internal IT is highly skilled and responsive enough to commit to the upcoming changes in Data, Routing and Labels specs. Attention: Requirements will be tightened severely from 2021 on.
When moving into the API and away from the (MPSEXPDATA, CRDATA01 and PICKUPDIFF) EDI drop-offs on (s)FTP, the following field mapping is highly valuable to match and compare your data input. Although not all possible fields are displayed below, the mapping covers all mandatory and most used fields and namespaces. We will help you migrate your self-printing solution to our web based API until your integration is working as you please.
Label and Routing requirements are not mentioned, since they no longer are your responsibility. The API will relieve that effort.
SWS - Shipment Creation | MPSEXPDATA Shipment File |
ADDRESS | |
name1 | HEADER-SNAME1,RNAME1 |
name2 | HEADER-SNAME2,RNAME2 |
street | HEADER-SSTREET,RSTREET |
houseNo | HEADER-SHOUSENO,RHOUSENO |
state | HEADER-RSTATE |
countryCode | HEADER-SCOUNTRYN,RCOUNTRYN |
zipCode | HEADER-SPOSTAL,RPOSTAL |
city | HEADER-SCITY,RCITY |
customerNumber | HEADER-RCUSTID, SCUSTID |
type | - |
contact | HEADER-SCONTACT, RCONTACT |
phone | HEADER-SPHONE,RPHONE |
fax | HEADER-SFAX, RFAX |
HEADER-SEMAIL,REMAIL | |
comment | HEADER-RCOMMENT, SCOMMENT |
iaccount | INVOICE-IACCOUNT |
eoriNumber | INTER-CEORI |
vatNumber | INTER-CVATNO |
idDocType | - |
idDocNumber | - |
webSite | - |
DELIVERY | |
day | DELIVERY-DELIVERYDAY |
dateFrom | DELIVERY-DELIVERYDATE_FROM |
dateTo | DELIVERY-DELIVERYDATE_TO |
timeFrom | DELIVERY-TIMEFRAME_FROM |
timeTo | DELIVERY-TIMEFRAME_TO |
GENERAL SHIPMENT DATA | |
mpsId | HEADER-MPSID; PARCEL-MPSID; COD-MPSID; PICKUP-MPSID; INVOICE-MPSID; PERS-MPSID; MSG-MPSID; SWAP-MPSID; INTER-MPSID; SHIPINFO-MPSID; INTERINVOICELINE-MPSID; DELIVERY-MPSID; |
cUser | HEADER-CUSER |
mpsCustomerReference Number1 | HEADER-MPSCREF1 |
mpsCustomerReference Number2 | HEADER-MPSCREF2 |
mpsCustomerReference Number3 | HEADER-MPSCREF3 |
mpsCustomerReference Number4 | HEADER-MPSCREF4 |
identificationNumber | - |
sendingDepot | HEADER-SDEPOT |
product | SO Codes + AS Codes |
mpsCompleteDelivery | HEADER-MPSCOMP |
mpsCompleteDelivery Label | HEADER-MPSCOMPBL |
mpsVolume | HEADER-VOLUME |
mpsWeight | HEADER-WEIGHT |
HIGHER INSURANCE | |
amount | PARCEL-HINSAMOUNT |
currency | PARCEL-HINSCURRENCY |
INTERNATIONAL | |
parcelType | INTER-PARCELTYPE |
customsAmount | INTER-CAMOUNT |
customsCurrency | INTER-CCURRENCY |
customsAmountEx | INTER-CAMOUNTEX |
customsCurrencyEx | INTER-CCURENCYEX |
clearanceCleared | INTER-CTERMS |
prealertStatus | INTER-CSTATUS |
exportReason | - |
customsTerms | INTER-CTERMS |
customsContent | INTER-CCONTENT |
customsTarif | INTER-CTARIF |
customsPaper | INTER-CPAPER |
customsEnclosure | INTER-CENCLOSURE |
customsInvoice | INTER-CINVOICE |
customsInvoiceDate | INTER-CINVOICEDATE |
customsAmountParcel | INTER-CAMOUNTP |
customsOrigin | INTER-CORIGIN |
linehaulTypeCode | - |
shipMrn | INTER-SHIPMRN |
collectiveCustomsClearance | - |
invoicePosition | INVOICELINE-CINVOICEPOSITION |
comment1 | INTER-COMMENT1 |
comment2 | INTER-COMMENT2 |
ConsigneeVatNumber | INTER-CVATNO |
INTERNATIONAL LINE | |
customsTarifNumber | INTERINVOICELINE-CTARIF |
receiverCustomsTariffNumber | - |
productCode | INTERINVOICELINE-CPRODCODE |
content | INTERINVOICELINE-CCONTENT |
grossWeight | INTERINVOICELINE-CGROSSWEIGHT |
itemsNumber | INTERINVOICELINE-QITEMS |
amountLine | INTERINVOICELINE-CAMOUNTLINE |
customsOrigin | INTERINVOICELINE-CORIGIN |
invoicePosition | INTERINVOICELINE-CINVOICEPOSITION |
NOTIFICATION | |
channel | MSG-line |
value | MSG-line |
language | MSG-line |
PARCEL | |
parcelLabelNumber | PARCEL-PARCELNO |
customerReference Number1 | PARCEL-CREF1 |
customerReference Number2 | PARCEL-CREF2 |
customerReference Number3 | PARCEL-CREF3 |
customerReference Number4 | PARCEL-CREF4 |
swap | PARCEL-HINSSWAP |
volume | PARCEL-VOLUME |
weight | PARCEL-WEIGHT |
hazardousLimited Quantities | PARCEL-HAZLQ |
higherInsurance | PARCEL-HINSURE |
content | PARCEL-HINSCONTENT |
addService | PARCEL-SERVICE |
messageNumber | SHIPINFO-MSGNO |
function | SHIPINFO-FUNCTION |
parameter | SHIPINFO-PARAMETER |
printInfo1OnParcelLabel | - |
info1 | - |
info2 | - |
returns | - |
customsTransportCost | - |
customsTransportCostCurrency | - |
PARCELSHOP DELIVERY | |
parcelShopId | HEADER-RPUDOID |
parcelShopNotification | MSG-line |
PERSONAL DELIVERY | |
type | PERS-PERSDELIVERY |
floor | PERS-PERSFLOOR |
building | PERS-PERSBUILDING |
department | PERS-PERSDEPARTMENT |
name | PERS-PERSNAME |
phone | PERS-PERSPHONE |
personId | PERS-PERSID |
PICKUP | |
tour | - |
quantity | - |
date | PICKUP-PDATE |
day | - |
fromTime1 | - |
toTime1 | - |
fromTime2 | - |
toTime2 | - |
extraPickup | - |
collectionRequest Address | - |
PROACTIVE NOTIFICATION | |
channel | MSG-line |
value | MSG-line |
rule | MSG-line |
language | MSG-line |
PRODUCT AND SERVICE DATA | |
orderType | - |
saturdayDelivery | SO Codes + AS Codes |
exWorksDelivery | SO Codes + AS Codes |
guarantee | SO Codes + AS Codes |
tyres | SO Codes + AS Codes |
personalDelivery | SO Codes + AS Codes |
pickup | SO Codes + AS Codes |
parcelShopDelivery | SO Codes + AS Codes |
predict | SO Codes + AS Codes |
personalDelivery Notification | SO Codes + AS Codes |
proactiveNotification | SO Codes + AS Codes |
countrySpecificService | SO Codes |
SWS - Requesting a Collection Request | Collection request - CRDATA |
generalShipmentData | |
sendingDepot | ODEPOT, CDEPOT |
productAndServiceData.pickup.collectionRequestAddress | |
name1 | CNAME1 |
name2 | CNAME2 |
street | CSTREET |
houseNr | added to CSTREET |
countryCode | CCOUNTRY |
zipCode | CPOSTAL |
city | CCITY |
contact | |
phone | CPHONE |
CEMAIL | |
generalShipmentData.recipient | |
name1 | RNAME1 |
name2 | RNAME2 |
street | RSTREET |
houseNr | added to RSTREET |
countryCode | RCOUNTRY |
zipCode | RPOSTAL |
city | RCITY |
phone | RPHONE |
REMAIL | |
generalShipmentData.sender | |
name1 | ONAME1 |
name2 | ONAME2 |
street | OSTREET |
houseNr | added to OSTREET |
countryCode | OCOUNTRY |
zipCode | OPOSTAL |
city | OCITY |
contact | |
phone | OPHONE |
OEMAIL | |
productAndServiceData.pickup | |
date | PICKUPDATE |
quantity | |
day | |
fromTime1 | |
toTime1 | |
fromTime2 | |
toTime2 | |
parcels (atually only data from the first is taken into account) | |
weight | WEIGHT |
info1 | INFO1 |
info2 | INFO2 |
printInfo1OnParcelLabel | # added to INFO1 |
customerReferenceNumber1 | CUSTREF |
SWS - Requesting a Pickup | Pickup - PICKUPDIFF |
generalShipmentData | |
sendingDepot | DEPOT |
productAndServiceData.pickup.collectionRequestAddress | |
name1 | NAME1 |
name2 | NAME2 |
street | STREET |
houseNr | added to STREET |
countryCode | COUNTRY |
zipCode | POSTAL |
city | CITY |
contact | CONTACT |
phone | PHONE |
generalShipmentData.sender | |
name1 | NAME1 |
name2 | NAME2 |
street | STREET |
houseNr | added to STREET |
countryCode | COUNTRY |
zipCode | POSTAL |
city | CITY |
contact | CONTACT |
phone | PHONE |
productAndServiceData.pickup | |
date | FROMDATE |
quantity | QUANTITY |
day | DAY |
fromTime1 | FROMTIME1 |
toTime1 | TOTIME1 |
fromTime2 | FROMTIME2 |
toTime2 | TOTIME2 |