Skip to main content
API Developer Portal

Main navigation

  • APIs
    • API Service Types
    • Tracking APIs
    • Shipping APIs
    • Browse all services
  • Documentation
  • Help Center
  • EN
    • DE
    • EN
    • JA
    • KO
    • TH
    • ZH-HANS
    • ZH-HANT
  • Register
  • Login
  • Register
  • Login
Shipment Tracking - Unified - Push
Try now! Get Access!
Navigation Menu
Shipment Tracking - Unified - Push
v 1.2.2
Division: DHL Group, DHL Freight

Best for:

  • Providing access to the shipment status at any time
  • Integrating all types of DHL shipments
  • Multiple shipments (e.g. eCommerce, Express, Freight, Letter, Parcel, etc.)

This is the push version of the Shipment Tracking Unified API which proactive sends updates.

Region: Global
Used for: Tracking
Overview

With proactive tracking notification, users of the DHL Shipment Tracking API can now receive push notifications on the status of their shipments, including delivery time and routing updates etc.

You can subscribe for updates in two ways

  • based on TrackingID*
  • based on Customer AccountID*

*see supported subscription scenarios

 

Advantages of Push Notifications

Avoid unnecessary API calls and data polling

Push updates provide close to real time status updates ad continuously keeps consumers up-to-date. No need for actively requesting the latest shipment update in order to have the latest status. 

 

Improved Customer Experience

Push updates provide a versatile and straightforward solution, easily integrated into the customer's workflow with minimal setup required. The result is real-time notifications delivered at reduced costs.

  

Supported Products

  • eCommerce
    • Europe:  Cross-border products (Parcel Connect, Return Connect, Parcel International, Connect PLUS, Return International) 
    • Parcel UK: Parcel Connect, Return Connect, Worldwide Air, Parcel International, International Road Economy  
    • Parcel NL, domestic shipments
    • PPL, domestic (CZ)  shipments
    • US: Domestic Ground, Expedited, Expedited Max, Parcel International, Packet International
       
  • P&P (Post und Paket)
    • Brief
      • Einschreiben National, Einschreiben, Einschreiben Rückschein, Einschreiben Eigenhändig, Einschreiben Einwurf, Wert, Prio, Nachname, Einschreiben International, Einschreiben Rückschein International, Einschreiben Eigenhändig International, Wert National, Warenpost Tracked International, Ländernachweis, Postzustellungsauftäge (PZA)
    • Post International (DPI)
      • Packet Tracked, Packet Priority, Business Mail Registered
         
  • Global Forwarding 
    • SameDay: SameDay Jetline Unaccompanied shipment, SameDay Jetline accompanied shipment, Same Day Speedline, SameDay Sprintline 
    • eCommerce shipments
       
  • DHL Freight
    • EuroConnect, Eurapid, EuroLine, EuroNet, Customs Services, Coldchain,Trade Fairs & Events, Standard Pallet Domestic, Premium Pallet Domestic, Lead Logistics Provider, Transport Related Warehousing, RailConnect, RailLine, Parcel, Home Delivery

 

Coming soon - not yet supported

  • P&P,  Internetmarke
  • Global Forwarding, Airfreight, Ocean Freight

     

Notifications will have the same format as the traditional request & response UTAPI documented at: https://developer.dhl.com/api-reference/shipment-tracking

Retry mechanism

To ensure you do not loose any notifications in the case your system is not available this push API comes with a retry mechanism.

To successfully consume our notification, the receiving system must:

  • use a valid SSL certificate and
  • reply to the event POST request with a HTTP 200 response within 5 seconds.

If either of these requirements is not met, the system will retry delivery in 1 hour. If the second delivery fails, the system will retry delivery 6 hours after the second delivery attempt. If the third delivery fails, the system will not try to send the event again and the technical contact associated with the account will be notified of the deactivation via email. If event delivery fails 10,000 times consecutively for a specific webhook, that webhook will be automatically deactivated, and the technical contact associated with the corresponding pickup customer account will be notified of the deactivation via email.

 

Supported Subscription scenarios

 

Service /

Subscription Type

eCS EUeCS BNLeCS UKeCS PPLPost DE DGFSameDay
Shipmentyesyesyesyesyesyes (SBR)yes
Accountyesn/ayesyesn/ayes (SBR)yes

 

User Guide

Get Access

You must request credentials for any applications you develop

To get access to this API, please follow these steps:

  1. Click on this page's "Get Access" button, or go to this link.
  2. Please fill out the form and submit it.
  3. Our team will review your request. If you have valid user and customer credentials, we will grant a new app with access to this API with a test quota.

 

Authentication

Every call to the API requires a subscription key. This key needs to be passed through a 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.

 

Environments

The addressable API base URL/URI environments are:  

EnvironmentDescription
https://api-eu.dhl.com/Production environment

 

Setup process

How to create and activate subscription please refer to the Reference Docs.

Two types of subscription are supported - 

  • by Shipment (immediate activation)
  • by Account,  (Business approval is required to fully activate account subscription)

1) Create subscription notification

Once a subscription has been created your webhook will receive a confirmation about the subscription creation. This confirmation will  contain a "secret"  in the header and the same value is also listed as a secret in the body. This "secret" is needed to confirm you are owner of the webhook and to active the subscription

Example:

{
  "self": "https://api-eu.dhl.com/tracking/push/v1/subscription/94d0131a-66b1-450d-82ac-4566b29c3dc1",
  "scope": "subscription.validate",
  "expires": "2022-11-08T15:27:09.021945677Z",
  "secret": "rZxQ2L1FDlbuaQObrAhtgq",
  "note": "Subscription validation token provided."
}

2) Activate subscription notification

Once the subscription has been activated the webhook will receive a confirmation about the subscription activation. Upon activation the subscription is ready to provide tracking updates.

Example:

{
  "self": "https://api-test.dhl.com/tracking/push/v1/subscription/94d0131a-66b1-450d-82ac-4566b29c3dc1",
  "scope": "subscription.ready",
  "expires": "2023-05-02T15:32:15.33751504Z",
  "note": "Subscription ready for notifications."
}

3) Receive Shipment notifications

The webhook will receive notifications about status and e.g. delivery time of a shipment. For shipments data schema, please refer to the "specification of a consumer web-hook endpoint" file in the download section

Example:

{
    "self": "https://api-eu.dhl.com/push/subscription/94d0131a-66b1-450d-82ac-4566b29c3dc1",
    "scope": "subscription.push",
    "expires": "2025-04-08T12:26:31.919Z",
    "note": "Event push message",
    "shipments": [
        {
            "id": "7777777770",
            "service": "ecommerce-europe",
            "status": {
                "timestamp": "2023-03-02T07:53:47Z",
                "location": {
                    "address": {
                        "countryCode": "NL",
                        "postalCode": "1043 AG",
                        "addressLocality": "Oderweg 2, AMSTERDAM"
                    }
                },
                "statusCode": "transit",
                "status": "in customs",
                "description": "The shipment is pending completion of customs inspection.",
                "pieceIds": [
                    "JD014600006281230701",
                    "JD014600006281230702",
                    "JD014600006281230703"
                ],
                "remark": "The shipment is pending completion of customs inspection.",
                "nextSteps": "The status will be updated following customs inspection."
            }
        }
    ]
}

 

 

Legal Terms
specifics for the use of Tracking Data
  • Tracking data is provided to You and/or the entity you are authorized to represent (hereinafter “You”/”Your”)  via this SHIPMENT TRACKING API under the prerequisite, that You retrieved the according tracking number in compliance with the applicable law, especially in the field of data protection and competition law and that You use the tracking number and/or tracking data solely for Your own legitimate tracking purposes.
  • You may only submit tracking data to the recipient of DHL Group shipment and no other person; such submission shall always been in compliance with applicable laws in the field of data protection and competition law, which includes that the data shall not be combined with advertisement or presented in a way that it could be regarded as advertisement.
  • If you are acting on behalf of a (mutual) shipping customer or the consignee, i.e. you are neither the sender nor the consignee of the DHL Group-shipment the Tracking Data refers to, the following applies:

    •    You are required to obtain all necessary consent(s) under the applicable laws, especially Data Protection Laws and postal secrecy protection laws. This shall include the obligation to obtain valid consent from the sender, and - if the Tracking Data contains consignee data, such as name or address - to ensure that valid consent has been obtained from the consignee, in each case prior to requesting the Tracking Data.

    •    You shall make the sender aware of the necessity of transparently informing the consignee about the processing of their personal data in accordance with applicable Data Protection Laws.

    •    You shall transparently inform the sender and/or consignee that the use of Your Application may lead to the disclosure of protected data (e.g., protected by postal secrecy and Data Protection Laws) to third parties, including yourself.

    •    You are required to inform the sender and/or consignee of the restrictions outlined in this User Guide and the General Developer Portal Terms of Use.

You shall, upon our written request, provide proof of compliance with the above requirements. We may conduct an audit to verify your compliance with the above requirements in accordance with the audit provisions (see section “MONITORING AND AUDIT”) in our General Developer Portal Terms of Use.
 

  • In no case shall you reveal and/or provide third parties with the tracking number and/or tracking data and/or analyze, modify such data in any form and/or derive data/information especially for competitive reasons from it without our prior written consent.
  • Tracking 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
  • You shall delete the tracking number and tracking data which You received via the SHIPMENT TRACKING API 30 days after the delivery (of the shipment) to the recipient is completed.

 

 

specification of a consumer web-hook endpoint OCTET-STREAM - 17.63 KB
Group Shipment Tracking Unifed Push API collection.postman_collection.json OCTET-STREAM - 16.43 KB
status_2.csv TEXT/CSV - 72.32 KB
API setup with Postman - Step by step guide PDF - 1.93 MB
1.2.1
11.Mar.2024

shipment subscription with challenge details

1.2.0
17.Jan.2024

'service', 'hook', 'shipmentIDs' elements are defined as mandatory in SubscriptionRequest.

1.1.9
07.Dec.2023

Dynamic application security testing (DAST) is enabled. It helps to detect common security issues such as cross-site scripting (XSS), SQL injection, insecure direct object references, and more.

1.1.8
21.Nov.2023
  • Extended message format adding additional attributes and json-ld usage
    • $.returnFlag
    • $.division
    • $.status
    • $.status.timestamp
    • $.status.address
    • $.status.address.countryCode
    • $.status.address.postalCode
    • $.status.address.addressLocality
    • $.status.address.addressLocalityServicing
    • $.status.address.addressRegion
    • $.status.address.streetAddress
    • $.status.simplifiedStatus
    • $.status.divisionalStatus
    • $.status.description
    • $.status.remark
    • $.status.nextSteps
    • $.pickupDate
    • $.details.carrier
    • $.details.carrier.organizationName
    • $.details.carrier.familyName
    • $.details.carrier.givenName
    • $.details.carrier.name
    • $.details.proofOfDelivery.signed.organizationName
    • $.details.proofOfDelivery.signed.familyName
    • $.details.proofOfDelivery.signed.givenName
    • $.details.valueAddedServices
    • $.details.valueAddedServices.serviceCriteria
    • $.details.valueAddedServices.serviceFlag
    • $.details.valueAddedServices.serviceType
1.1.5
14.Jun.2023
  • Hook secret is included in web hook notification message body
  • 'accountID' element is defined as mandatory in SubscriptionRequest
1.1.2
11.Jan.2023

'/Subscriptions' end point added for the user to get all his valid subscriptions.

1.1.1, Pilot Release
11.Oct.2022

Pilot release covering most important features:

1. Subscription Maintenance (Create/Activate/Approve/Get/Remove)

2. Pushing ad-hoc ERC Shipments to subscribers via web-hooks

0.1.0
05.Sep.2022
  • Initial Pilot Release

Find Content

APIs of our divisions

  • DHL eCommerce
  • DHL Express
  • DHL Global Forwarding
  • DHL Freight
  • DHL Supply Chain
  • Post & Parcel Germany

Developers

  • API Catalog
  • Documentation
  • API Status

Footer menu

  • Imprint
  • Privacy Notice
  • Terms of Use
  • Cookie Settings
2025 © DHL International GmbH. All rights reserved.