ShipEngine’s integration with DHL eCommerce allows you to create domestic labels for shipments within the US and international labels for shipments from the US and Canada.
For international shipments, ShipEngine automatically generates and submits your customs documentation.
If you'd like to open a DHL eCommerce account, contact your DHL representative to request a quote and begin the DHL eCommerce certification process.
Looking for DHL eCommerce Australia?
ShipEngine offers a separate DHL eCommerce integration for Australia-based accounts. Please see our DHL eCommerce (AU) help article for details.
Connection Requirements:
Contact your DHL account representative if you do not have any of the following information.
-
An active account with DHL eCommerce
-
Client ID
-
Client Secret
-
Sold To Account Number (optional)
-
Pickup Account Number
-
Distribution Center Name
Manifest Requirements:
-
DHL eCommerce requires a printed manifest for each day's shipments. To manifest your shipments, use ShipEngine's End of Day process.
The following services are available for US-based and Canada-based DHL eCommerce accounts.
US Domestic Services:
-
DHL SM Parcel Ground
-
DHL SM Parcel Plus Ground
-
DHL SM Parcel Expedited
-
DHL SM Parcel Plus Expedited
-
DHL SM BPM Ground
-
DHL SM BPM Expedited
-
DHL SM Marketing Parcel Expedited
-
DHL SM Marketing Parcel Ground
US Return Services:
-
DHL SM Parcel Return Light
-
DHL SM Return Plus
-
DHL SM Parcel Return Ground
US International Services:
-
DHL Globalmail Packet IPA
-
DHL Globalmail Packet ISAL
-
DHL Globalmail Packet Standard
-
DHL GlobalMail Business IPA
-
DHL Parcel International Priority
-
DHL Parcel International Expedited - DDP
-
DHL Parcel International Expedited - DDU
-
DHL Parcel International Direct - DDP
-
DHL Parcel International Direct - DDU
-
DHL Parcel International Standard
-
DHL Packet International
-
DHL Packet Plus International
Canada International Services:
-
DHL Packet International
-
DHL Packet Plus International
-
DHL Parcel International Standard
-
DHL Parcel International Direct Priority
-
DHL Parcel International Direct Standard
Package Types (US & CA):
Confirmation Options (US & CA):
DHL Shipping Unavailable to US Territories
Services for DHL (Express and Ecommerce) and DHL Express by ShipStation no longer support shipments to US territories.
ShipEngine's integration with DHL eCommerce allows for the following additional features:
|
Feature |
Description |
|---|---|
|
Dangerous Goods |
DHL eCommerce can use Dangerous Goods as an advanced option for their shipments. API: Use a number code to denote DG type [01, 02, 03, 04, 05, 06, 08, 09] as a string instead of the dangerous_goods boolean. See the DHL eCommerce Americas API Content Categories for the number code values of the different DG types of DG. |
|
An End-of-Day Driver Summary Manifest is REQUIRED for both Domestic & International Shipments. |
DHL eCommerce requires a printed EOD form for their drivers to collect at pickup. See our Create a Manifest documentation for instructions on how to print EOD forms in ShipEngine. |
|
US Int'l Shipments only: A USPS tracking number associated with a DHL-created label. |
DHL eCommerce uses the USPS for the US domestic part of the journey and the local postal service in the destination country to make the final delivery. Use the DHL tracking number to track your package with USPS and through the DHL eCommerce site. |
To ensure smooth customs clearance and minimize the risk of shipment inspections or delays, it is critical to provide high-quality data for every international shipment. Poor data quality, specifically vague descriptions and missing HS codes, often triggers manual reviews by destination authorities.
-
Be Literal: Describe the item as if you are explaining it to someone who cannot see it.
-
Include Part Numbers: If your product has a Part Number (PAN), include it in the reference field to help customs verify the item.
-
The "Rule of Three": A great description usually answers What it is, What it's made of, and What it's for.
Customs authorities need to know exactly what is being imported, what it is made of, and its intended use. Avoid using internal marketing descriptions or vague terms.
-
Avoid Stop Words: Words like "Sample," "Variety," or "Gift" are frequently flagged and may trigger an automatic inspection. For a List of Common Stop Words, see the PDF attachment at the end of this article.
-
Include Material Composition: For items like footwear or apparel, specify the materials (e.g., "Men’s jeans, 80% cotton, 20% polyester" instead of just "Jeans").
-
Detail the Product Type: Instead of "VINTAGE FOOTWEAR," use "Women’s shoes - leather upper and rubber sole."
-
Be Specific: Instead of "Wheel adjusted," use "Bicycle rear pivot part."
Providing a correct HS code (or Commodity Code) is the most effective way to help customs officials categorize your goods.
-
🇺🇸 US-Based Shippers: Use the US Census Bureau’s Schedule B Search Engine to find the correct code.
-
Global Shippers: Ensure you are using the most current codes required by the destination country to avoid incorrect duty/tax calculations.
When possible, include the specific part or item number in your commercial invoice data. Mapping these to the correct reference fields in your shipping tool (e.g., the "PAN" reference type) provides an extra layer of clarity for clearance agents and helps verify the item against the provided description.
Using vague language is the fastest way to get a shipment flagged for inspection. Below are examples of poor descriptions found in recent audit data versus the clear, detailed descriptions required by customs authorities. For a List of Common Stop Words, see the PDF attachment at the end of this article.
|
Poor Description (Vague) |
Better Description (Detailed) |
Why it Matters |
|---|---|---|
|
VINTAGE FOOTWEAR |
Women's shoes: leather upper, rubber sole |
Defines gender, material, and sole type. |
|
JEANS |
Men’s jeans: 80% cotton, 20% polyester |
Specifies material composition for textiles. |
|
SAMPLE / VARIETY |
Stainless steel kitchen whisk (K792) |
Stop Words like "Sample" or "Variety" trigger automatic flags. |
|
HAIR PRODUCT |
Organic argan oil hair serum (100ml) |
Identifies the specific substance and volume. |
|
The Mesa - Medium |
Canvas messenger bag with brass buckles |
Moves past marketing names to actual physical traits. |
To ensure your international shipments clear customs without delay, use this checklist to review your data before printing your labels.
-
[ ] Is the description specific? (e.g., "Men's 100% cotton t-shirt" instead of "Apparel")
-
[ ] Did you avoid Stop Words? (Ensure "Sample," "Gift," and "Variety" are not used)
-
[ ] Is the material composition listed? (e.g., "Stainless steel," "Leather," "Plastic")
-
[ ] Is the HS code/Commodity code included? (Use a search tool if you aren't 100% sure)
-
[ ] Is the Part Number (PAN) mapped correctly? (Helps verify the item in the clearance system)
-
[ ] Is the unit value and currency accurate? (Ensure values match your commercial invoice)
When writing descriptions, ignore your marketing names. Customs authorities don't know what a Polaris IGX 144+ Linkage Kit is. Instead, describe the physical object: Steel mechanical linkage parts for vehicle suspension.
When integrating with international carriers, how you map data fields in your API payload directly impacts customs clearance rates. While the UI may show a single "Description" field, the backend mapping should prioritize the following:
-
Reference Field Mapping (PAN)
To assist customs authorities in verifying shipments against digital records, ensure that product part numbers are mapped to the correct reference type.
-
Reference Type: PAN (Part Number)
-
Usage: Map your internal SKU or manufacturer part number here. This allows clearance systems to match the physical item to the digital declaration more efficiently.
-
-
Data Integrity vs. UX Display
It is important to note that what the customer sees in the ShipStation or Shopify UI may not always reflect the full data payload sent to the carrier.
-
Payload Enrichment: Even if a merchant uses a short marketing title in their store, the integration should attempt to send the most granular description available in the product database to the
descriptionfield in the customs object. -
Stop Word Scrubbing: Consider implementing a validation layer that flags or prevents the use of Stop Words (Sample, Gift, Variety) in the
descriptionfield before the API call is finalized.
-
-
HS Code Automation
Automating the
harmonized_tariff_codefield is the highest-value optimization you can provide. Ensuring this field is populated with a 6 to 10-digit code reduces the reliance on the text description alone, as the code provides a universal language for customs agents worldwide.
-
DHL Shipping Unavailable to US Territories: Services for DHL (Express and Ecommerce) and DHL Express by ShipStation no longer support shipments to US territories.
-
DHL eCommerce Domestic will not display rates in ShipEngine unless the Rating API is activated.
-
DHL eCommerce supports 1 label message. You must use the "reference3" field in your label request body.
-
Labels can and will appear differently when they ship to different destinations. Because shipments go to different DHL eCommerce stations to be sorted by destination, their labels will look different, depending on the shipment destination.
-
Shipments generated through our direct DHL eCommerce must be closed out and manifested through ShipEngine. See our Create Manifests page to learn more.
Here are some common issues, potential causes, and troubleshooting tips.
|
Issue |
How to Troubleshoot or Resolve |
|---|---|
|
Received a notice that says "Mail on HOLD at DHL Global Mail". |
This means you have not electronically transmitted the daily manifest for your DHL shipments. You will need to create a manifest for your DHL labels and download the manifest PDF that is returned. Please note that when the shipments are manifested, the Ship Date on the Shipments page will update to reflect the date the manifest was submitted. |
|
Error "Failed to retrieve DHL Sort code: Service Type Code provided as input to the request does not match the USPS Product as determined by DHL GM;. Error encountered (Log ID: XXXXX)" |
This means that your DHL account does not have that specific USPS service enabled by your DHL account. To fix this, you'll need to contact your DHL representative to make sure that the service is enabled. If your DHL representative says that the service is correctly enabled, please contact our ShipEngine support team so that we can investigate the issue for you. |
|
Duplicate Tracking Numbers |
Tracking numbers created in the seller will always be unique. However, if one DHL eCommerce account (with the same pickup number) is connected to a different ShipEngine account, duplicate tracking numbers can occur. To prevent this from happening, create a new DHL eCommerce sub-account to generate a new unique pickup number. When you connect your DHL eCommerce account to the secondary ShipEngine account, use the unique pickup number for the new sub-account. If you aren't sure how to do this, contact DHL eCommerce directly to help set up the sub-accounts (or potentially add multiple pickup numbers to one account). |