Shipment Status (DHL Global Forwarding)
v 1.0.2
Division: DHL Global Forwarding

Best for:

  • Providing access to the latest shipment event
  • Business customers of DHL Global Forwarding
  • Air and Ocean Freight shipments
Region: Global
Used for: Tracking

ShipmentStatus API allows developer to use shipment's housebill number (DHL shipment number) to request for shipment status information. The response includes the shipment's latest timestamp, origin and destination, package count and weight.

API also allows query using customer's reference, container number or masterbill number. To do that, use GET /housebill-number to get a list of housebill numbers for a given reference, like, customer’s reference, container number or masterbill number. Use the housebill number list returned by the response to perform the next step, GET /shipment-tracking.

Please see API specification for more details.

If you wish to query the all historic events please use ShipmentTracking API.


The Shipment Status (DHL Global Forwarding) API provides access to tracking services relating to various products at DHL Global Forwarding. 

Using the API

You must have an eligible housebill number (DHL shipment number) for the shipment and an API subscription key (this key needs to be either passed through a query string parameter or specified in the request header).

Shipment Status (DHL Global Forwarding) - Environment: Production - Rate Limit: Starter API product is auto-approved. It is meant for users with low usage and for users to try out the API without having to wait for approval. Higher rate limit API product (Standard and Internal rate limit) requires approval from DHL team.

User Guide

Get Access

You must request credentials for any applications you develop

To register your app and get your API subscription keys:

  1. Click My Apps on the portal website.
  2. Click Add Developer App.
    The “Add App” form appears.
  3. Complete the Add App form. 
    You can select the APIs you want to access. 
  4. When you have completed the form, click the Add App button. 
    The “Approved” label will appear next to the app name when the app has been approved.
    Note: Additional verification steps may be required for some applications.


Every call to the API requires a subscription key. This key needs to be either passed through a query string parameter or specified in the request header (DHL-API-Key).

To view your API subscription keys:

  1. From the My Apps screen, click on the name of your app.
    The Details screen appears. 
  2. If you have access to more than one API, click the name of the relevant API. 
    Note: The APIs are listed under the “Credentials” section. 
  3. Click the Show link below the asterisks that is hiding the Consumer Key
    The Consumer Key appears.  


The addressable API base URL/URI environment is:  

Environment Description Production environment


Rate limits

Rate limits protect the DHL infrastructure from suspicious requests that exceed defined thresholds.

The table below details the main request limits:

Service Level Maximum calls Approval
Starter 50 per day Auto Approved
Standard 2500 per day Verification and approval required
Internal 5000 per day Verification and approval required


Please contact if you need higher throughput. 

When the limit is reached, you will receive an HTTP Status code: 

HTTP/1.1 429 Too Many Requests


Additional Information

Permitted HTTP methods
  • GET for retrieving data


Message Definition


Elements Data Type Length (min..max) Cardinality (min..max) Description Code List
ShipmentStatus GROUP   1..1 Root Element  
  MessageHeader GROUP   1..1 Attributes describing the message  
  Version String   1..1 Version of the Schema e.g. 1.0  
SenderID String   0..1 Included for possible future use  
ReceiverID String   0..1 Included for possible future use  
MessageID String   1..1 Unique ID  
CreationDateTime DateTime   1..1 Creation DateTime  
Shipment GROUP   1..1 Shipment Details  
  HousebillNumber         String 1..35 1..1 Housebill Number  
HouseFileNumber         String 1..35 0..1 Internal Number  
Origin GROUP   1..1 Origin Details  
  LocationCode       String 3..5 1..1 3-character Location Code  
LocationName       String 1..35 0..1 Location Name  
CountryCode       String 2 0..1 ISO 2-character country code  
Destination GROUP   1..1 Destination Details  
  LocationCode       String 3..5 1..1 3-character Location Code  
LocationName       String 1..35 0..1 Location Name  
CountryCode       String 2 1..1 ISO 2-character country code  
ProductType         String 1..10 1..1 Product Type ProductType
TotalPackages         Integer   1..1 Total number of packages  
TotalWeight             Decimal   1..1 Total Shipment weight (in kilograms)  
  @uom         String 1..3 1..1 Total Shipment weight uom

Default to KGM
TotalVolume             Decimal   1..1 Total Shipment volume (in cubic meters)  
  @uom         String 1..3 1..1 Total Shipment volume uom

Default to MTQ
Timestamp GROUP   1..1 Current Status of shipment  
  TimestampCode       String   0..1 Status Code EventAirCode
TimestampDescription     String   1..1 Current Status textual description  
TimestampDateTime     DateTime   1..1 Current Status Date Time  

Code List


Code Description
HBE Shipment Entered Into System
APT Actual Pickup Time
RCD Received at Origin
DEW Departed DHL Station
DEP Carrier: Departed
EAA Carrier: Arrived (1st Transit Point)
EAB Carrier: Departed (1st Transit Point)
EAC Carrier: Arrived (2nd Transit Point)
EAD Carrier: Departed (2nd Transit Point)
ARR Carrier: Arrived
ARV Arrived Final Destination
FPR Freight Recovered at
TBN Broker Notified
CUS Customs Entry
CLC Import Customs Cleared
OFD Out for Delivery
DOS Document Handover (Export)
EPD Estimated Delivery
POD Shipment Delivered
RRT Estimated Future Pick-Up
EXD All Export Documents Received
CAC Delivered to airline
RCS Received at airline
DLV Handover Freight to Forwarder
DIH Pick-up from Airline
DOH Import Document Handover
RFD Appointment Requested by DGF
EOD Appointment Confirmed by Customer
FUT Future Delivery Requested
STU Ready for Import Clearance
DOI Document Handover (Import)
SHO Shipment Handover
ECR Export Customs Cleared


Code Description


Code Description
A17 Customer Booking Received
A34 Shipment Entered into System
A31 CFS/CY Cut-Off Date
A02 Estimated Pick Up Date
A28 Estimated Vessel Departure
EDL Estimated Vessel Departure (Last Updated)
A29 Estimated Vessel Arrival
EAL Estimated Vessel Arrival (Last Updated)
A20 Booking Confirmed to Customer
A04 Actual Pickup Date (customer)
A30 Arrival at Origin DGF Terminal
A37 Actual Arrival at Destination CFS/CY
A42 Actual Vessel Departure
A41 Consignee / Broker Notified
ARD Actual Vessel Arrival
EPD Estimated Delivery
A39 Import Customs Cleared
ONH Arrival to CFS
B07 Shipment Handover
A60 Document Handover (if no POD)
A48 Requested Delivery
A32 Proof of Delivery
A45 Export Customs Cleared


Code Description
AIR Air freight
OCEAN Ocean freight
ROAD Road freight
RAIL Rail freight
Legal Terms
specifics for the use of STATUS Data
  • Data requested and received via this Shipment Status (DHL Global Forwarding) API, such as transport status, estimated delivery time, including the tracking/housebill number is hereinafter referred to as “Status Data”.
  • Status Data is Confidential Information in the meaning of section “Communication” of the General Developer Portal Terms of Use. Other than set forth below You must not reveal and/or provide third parties with the Status Data and/or analyze, modify such data in any form and/or derive data/information especially for competitive purposes from it without our prior written consent.
  • Status Data is provided to You and/or the entity you are authorized to represent (hereinafter “You”/”Your”) under the prerequisite, that You retrieved the according housebill number (DHL shipment number) in compliance with the applicable law, especially in the field of data protection and competition law and that You use the Status Data solely for Your own or Your customers’ legitimate tracking purposes.
  • The use and submission of Status Data – including submission to any of Your subcontractors – shall always be in compliance with applicable laws and regulations, including – without limitation – data protection laws and competition/antitrust law.
  • You shall not combine Status Data with advertisement or present it in a way that it could be regarded as advertisement.
  • Unless otherwise agreed, You shall delete the housebill number (DHL shipment number) and Status Data which You received via the Shipment Status (DHL Global Forwarding) API 30 days after the delivery (of the shipment) to the recipient is completed.
  • Status Data shall be used in accordance with the following specification:
    • Display “Delivered by Deutsche Post DHL Group“ in text (minimum font size) as soon as it is presented/submitted to recipient
  • Please note, that we provide free text boxes (e.g. for customer references) to improve the functionalities and user experience of the Shipment Status (DHL Global Forwarding) API. We explicitly ask you to refrain from sending any personal or business critical data and/or information as free text. It is within your sole responsibility to ensure that the data or information you send does not infringe upon applicable law, esp. data protection law, and that you are entitled to use the respective data and/or information accordingly.
  • If You are neither the shipper/sender nor the recipient of the DHL Global Forwarding shipment/s, the Status Data refers to,
    • You shall ensure, that you are authorized to act on behalf of the sender and/or the recipient;
    • You shall make the sender and/or the recipient aware of the restrictions set out in this User Guide just as the General Developer Portal Terms of Use;
    • You shall make the sender aware of the necessity to inform the recipient transparently about the processing of his/her personal data according to applicable data protection laws;
    • You shall inform the sender and/or recipient transparently that the use of Your Application may result in the disclosure of data being subject to postal secrecy and data protection laws to third parties (including You).
  • Migrated the backend tracking system to a new platform.
  • All location groups will now contain: LocationCode, LocationCodeUN, LocationName and CountryCode.
  • POD Signatory Name is now available under $.ShipmentStatus.Shipment.Timestamps.Timestamp.TimestampText for TimestampCode of A32 or POD.

Added "/housebill-numbers" resource for developers to get a list of housebill numbers using customer reference, container number or masterbill number as query parameter. The result (list of housebill numbers) can be used to query the "/shipment-status" resource.

This allows developers to search for shipment-tracking resources using customer reference, container number or masterbill number as search criteria.

  • Initial release