VulCode

DPD API integration: labels and pickups

Parcel numbers, labels, the handover protocol and a DPD courier booking straight from your warehouse panel. No retyping addresses into a second system and no hand-made protocols.

Couriers and shipping
Printing DPD labels in a warehouse panel: the parcel label preview, the printer and format choice, waybill numbers fetched from DPD

A warehouse day with a DPD integration

The order of operations the integration does for the warehouse team. Each is a separate DPD service operation.

Warehouse
packing and handing over parcels
  • PackingPacks the order, enters weight and dimensions
  • PackingPrints the label while packing
  • Courier visitHands over the parcels with the protocol to sign
Your system
the warehouse panel with the integration
  • PackingSends parcel and recipient data to DPD
  • PackingFetches the label for the same waybill
  • End of dayCreates the handover protocol for dispatched parcels
  • End of dayChecks available slots and books the courier
  • A customer returnIssues a return label in the client panel
DPD Poland
the web service and the courier
  • PackingAssigns waybill numbers
  • End of day - Courier visitConfirms the visit and picks the parcels up
  • A customer returnHands back the return label
  1. Waybill number

    Your system DPD Poland. Registering parcels returns waybill numbers, which go straight onto the order.

  2. Pickup booking

    Your system DPD Poland. The courier comes at a slot picked from the available ones, with no phone call to DPD.

  3. Return label

    Your system DPD Poland. The customer gets it in the store panel after requesting a return.

The service is SOAP with versioned operations. We pick the version that supports the features you need.

What to do when one parcel has an error

When registering several parcels at once, the DPD service takes one of three policies. We choose it with the warehouse.

STOP_ON_FIRST_ERROR

stop at the first error

For the warehouse it means
a quick signal something is wrong
Fits
small batches with manual checks
IGNORE_ERRORS

skip the failing ones, register the rest

For the warehouse it means
some parcels go, some wait for a fix
Fits
large daily batches
ALL_OR_NOTHING

all or none

For the warehouse it means
a multi-parcel order is always complete
Fits
orders with several parcels

What it looks like at the end of the day in the warehouse panel

The DPD end of day in a warehouse panel: the day's parcels with waybill numbers, the handover protocol, the courier pickup and a parcel held before dispatch
  1. A parcel without a waybill number

    The day's list shows at once which parcel got no number and will not make the protocol.

  2. An error stopped before DPD

    The postcode failed the check at packing, so the warehouse fixes the address before the parcel goes to registration.

  3. The policy in the settings

    This panel registers an order with several parcels complete or not at all.

A parcel number and label in one step

Registering a parcel returns the waybill number, and we fetch the label straight away for that number, so the warehouse prints it while packing.

DPD Polska
Parcel 1 of 2
Order #20462, twojsklep.pl
Waybill number1000046201571U
Recipient
Client 04, 12/4 Przykładowa St, 30-001 Kraków
Sender
Your company, warehouse, 5 Magazynowa St, 00-950 Warsaw
Weight1.8 kg
Dispatch date08.10.2026
Order number#20462
Printed while packing
  • The waybill number from DPD

    DPD assigns it when the parcel is registered. We take the field structure from the WSDL of the chosen operation version, not from memory.

  • The address from the order

    Recipient data comes from the order, with no retyping. We check the postcode before the parcel reaches DPD.

  • Weight and dimensions

    The warehouse enters them while packing or takes them from the catalogue, as a parcel needs realistic data.

  • The number goes back to the order

    The waybill and label go on the order, and the number to the customer and the marketplace if the order came from one.

A return without calling the store

The DPD service has operations for return labels, so the customer gets the label in the store panel and the team does not send it by hand.

A return in a store's client panel on a phone: the return label ready, the return waybill number, a PDF label download and the return progress

Delivery

  1. Warehouse
    a labelled parcel
  2. DPD
    pickup and delivery
  3. Customer
    the order delivered

Return

  1. Customer

    Requests a return in the store panel, and your system fetches a return label from DPD straight away.

  2. DPD

    Picks up the parcel with the return label and carries it to the store.

  3. Warehouse

    Receives the parcel with the return waybill number already on the request in the panel.

What we watch out for with DPD

Things that stop dispatching when the integration does not plan for them.

If the postcode is wrong,

Data

then parcel registration stops. We check it earlier, at checkout or while packing.

If weight and dimensions are guessed,

Data

then the parcel carries unrealistic data. The warehouse enters them while packing or takes them from the catalogue.

If newer operation versions support more services,

The service

then we pick one version and stick to it rather than mixing several in one codebase.

If DPD extends the service with new versions,

The service

then we check parameter names and operation versions against the account's WSDL before rollout.

If you have no service access yet,

Access

then DPD grants access and the test environment under your agreement, and all we need from you is the demo and production credentials.

Common questions about DPD integration

Answers about the DPD agreement, returns, aggregators and the quote.

How do you ship with DPD today?

Tell us where orders come from and how many parcels you ship. We will reply within an hour with questions and a quote.