Understanding Status Codes

Anyone shipping with DHL in fulfillment encounters status messages daily – in the business customer portal, in public shipment tracking, or as structured data via the tracking API. These messages are based on status codes and event codes that document every scan and every system entry in the DHL infrastructure. For online merchants, warehouse operators, and customer service teams, understanding these codes is crucial: they distinguish normal transport phases from real problems, drive automated customer notifications, and provide the basis for claims and SLA reporting.

This guide explains how DHL status codes are structured, which codes typically occur in which phase of a shipment, and how to integrate them meaningfully into shop systems, WMS, and shipping software.

What Are DHL Status Codes?

A status code at DHL is a standardized value that describes the processing status of a shipment. It is created when a barcode is read at a scan point – parcel shop, sorting center, delivery depot, Packstation – or when a system entry is generated. Each code is part of a tracking event with timestamp, location, and optional additional information.

Important for merchants: What customers see in the DHL app as simplified text ("Out for delivery", "Delivered") is often a technical code or internal event designation in the background. Via the DHL API and Shop Integration, you receive this raw data in structured form – and must translate it into understandable customer statuses for your system.

Important: A status code alone does not yet prove physical movement of the parcel. Pre-registration codes are created when the label is printed, before DHL has the parcel in hand. Only acceptance and transit codes signal that the shipment is actively in the network.

Status Code, Event, and Customer Status – The Three Levels

In day-to-day fulfillment, three terms are often conflated. For clean system integration, you should keep them separate:

  1. Event code (carrier raw data): Technical designation from DHL API or portal export, e.g. with granularity by scan type and facility.
  2. Aggregated shipment status: The current snapshot – usually the most recent relevant event code that DHL displays as the main status.
  3. Normalized shop status: Your own simplified category (e.g. "In transit", "Delivered", "Problem") that customers see in emails and in their account.

Three Display Levels Compared

DHL API Event
Portal Text
Shop Customer Status
Shipment picked up
Shipment handed over
Shipped
In transit
At parcel center
In transit
Out for delivery
Out for delivery
Delivery today
Delivered
Delivered
Delivered

A detailed classification of events and lifecycle can be found in the glossary DHL Shipment Status and Tracking Events as well as in the cross-carrier article Understanding Tracking Events.

Status Codes by Shipment Phase

DHL shipments typically go through fixed phases. The following overview assigns the most common status designations (customer view/portal) to the phases and provides recommended actions for merchants.

Phase
Typical Status Code / Portal Text
Physical Parcel
Recommended Merchant Action
Pre-registration
Electronic order data recorded / Shipment data available
Still in warehouse or shipping zone
Hand over parcel to DHL promptly; do not inform customers as "in transit" yet
Acceptance
Shipment handed over / Accepted at parcel center
In DHL network
Trigger shipping confirmation with tracking link
Transit
In transport / At parcel center / Further transport
En route between hubs
Monitoring; check SLA for express products
Delivery preparation
Out for delivery / On the way to recipient
On delivery vehicle
Proactive customer info ("Delivery today")
Delivery
Delivered / Successfully delivered
With recipient or pickup location
Complete order, start return period
Pickup
Ready for pickup Packstation / branch
Waiting for recipient
Inform customer with pickup code and deadline
Exception
Delivery attempt unsuccessful / Address unclear
With DHL, retry planned
Escalate immediately, contact customer
Return
Return to sender / Return initiated
Return transport to merchant
Internal claim, clarify inventory and customer

DHL Status Code Lifecycle

1
Pre-registration (label)
2
Acceptance
3
Transit Hub 1
4
Transit Hub 2
5
Delivery depot
6
Out for delivery
7a
Delivered (success path)
7b
Ready for pickup (pickup path)
7c
Exception (exception path from step 6)

The Most Important Status Codes in Detail

Pre-registration: Label created, parcel not yet with DHL

As soon as you create a label in the business customer portal or via API, DHL often reports "Electronic order data recorded" or "Shipment data available". This status code means: The tracking number is registered in the system, but no physical scan has occurred yet.

Typical error source in e-commerce: The shop immediately sends a "Your parcel is on its way" email even though the parcel is still on the packing table. Customers then see no progress for days – and support is flooded with WISMO inquiries.

Acceptance and Transit: Shipment is active

The first physically relevant code appears when the parcel is handed over to DHL – through pickup, drop-off at a parcel shop, or depot scan. Wording such as "Shipment handed over", "Accepted at parcel center", or "The shipment has been processed" marks the start of measurable transit time.

Transit codes document sorting and further transport between sorting centers. For standard parcel shipping, multiple transit events are normal and no cause for concern. Only if no new code follows over a longer period (regionally typically 2–3 business days for domestic shipments, depending on the product) should you follow up.

Delivery and Pickup: Success or last mile

"Out for delivery" is one of the most valuable status codes for customer communication: The parcel is on the delivery vehicle, and delivery usually takes place on the same day. Shops that only send two emails (shipping + delivery) should at least cover this phase.

For Packstation or branch delivery, codes such as "Ready for pickup" or "The shipment is ready for pickup" appear. The recipient needs pickup code and deadline – without proactive information, the risk increases that the parcel will be returned.

Exception Codes: When action is required

Not every unusual text is an emergency – but the following status codes should be stored in your system as alert events:

  • Delivery attempt unsuccessful – Recipient not available
  • Recipient cannot be determined / Address incomplete
  • Shipment being returned / Return to sender
  • Customs clearance (for international shipments – can delay transit)
  • Damaged or Contents inspected (rare, but relevant for claims)
Exception Status
Common Cause
Support Response
API Priority
Delivery attempt unsuccessful
Recipient not home, no safe place
Inform customer, mention retry or parcel shop
High – immediate notification
Address incomplete / undeliverable
Typo, missing house number, Packstation full
Clarify address with customer, redelivery if needed
High
Pickup deadline expired
Customer did not collect from Packstation/branch in time
Anticipate return, start returns process
High
Return to sender
Multiple failed delivery attempts, acceptance refused
Plan goods receipt, update customer and order status
Critical
Customs delay (international)
Missing documents, inspection
Inform customer about delay, submit customs data
Medium – depending on destination country
Warning: Do not ignore exception status codes because the shipment "will arrive eventually." A failed delivery attempt without customer response often leads to returns and double shipping costs.

Mapping Status Codes in the API and Shop

For automated fulfillment, the DHL tracking API provides events with technical codes. Your shipping software should maintain a mapping table: store raw events, normalize to internal categories, filter pre-registration, avoid duplicates, and log unknown codes instead of triggering system errors.

Event Mapping in the Shop

1
DHL API Poll/Webhook
2
Receive raw event
3
Lookup mapping table
4
Assign category
5
Update order status
6
Trigger customer email (only for defined codes)

Technical basics of integration: DHL API and Shop Integration. Broader context: DHL Shipment Status and Tracking.

Practical Example: Typical Code Sequence

A domestic shipment with DHL Paket often shows: Electronic order data recordedShipment handed overAt parcel centerOut for deliveryDelivered. Communication-relevant for customers are mainly acceptance, delivery preparation, and delivery – your mapping must reliably recognize these codes.

Tip: Regularly compare API raw data with the portal text for the same tracking number to detect mapping table discrepancies early.

Checklist: Status Codes in the Fulfillment Process

  • Mapping table created for all relevant DHL events
  • Pre-registration codes separated from actual shipping events
  • Automatic email for "Out for delivery" enabled
  • Exception codes trigger internal alerts (email, Slack, ticket)
  • Raw events stored for at least 90 days for claims
  • Unknown codes are logged and reviewed weekly
  • Customer service has access to shipment history in business customer portal
  • Marketplace tracking updates (Amazon, Otto, etc.) linked to the same codes

Avoiding Common Misunderstandings

  • "Electronic order data recorded" ≠ parcel shipped – Only the acceptance code means physical handover.
  • "In processing" in transit ≠ delay – Generic wording during sorting.
  • "Delivered" with neighbor delivery – Details may differ in Proof of Delivery and POD.
  • Status stagnates on weekends – Only check after usual transit time plus buffer.

Deriving KPIs from Status Codes

Status codes can be used to derive operational metrics: Time to First Scan (label to acceptance), Transit Time (acceptance to delivery), Exception Rate (share of exception codes), and First-Attempt Delivery Rate (delivery without exception on first attempt).

Statistics: E-commerce industry average: 2–4% exception events. Top performers are below 1.5%. With optimized address validation, the exception rate decreases measurably.

Related Topics

Last updated: July 6, 2026