Site Logo

🎉 ShipEngine is becoming ShipStation API 🎉

Over the next few months you'll notice the ShipEngine website, documentation portal, and dashboard being rebranded as ShipStation API. For our ShipEngine customers, you don't need to take any action or change any of your integrations in any way. All endpoints will remain the same and continue to function as they always have.

To learn more about what's coming, review our New ShipStation API page.

DHL Express

DHL Express allows you to ship packages from the US, New Zealand, and most EU countries to destinations all over the world.

This guide provides developers with the details needed to build DHL Express shipping capabilities into your ShipStation API workflows.

ShipStation API also has integrations for DHL Express Australia, DHL Express Canada, and DHL Express UK. Visit their carrier guides for details! If you wish to use the DHL Express services included with ShipStation API, visit the DHL Express from ShipStation guide.

Requirements

PropertyTypeRequired?Description
nicknamestringrequiredThis is a nickname for you to identify the carrier account in ShipStation API.
account_numberstringrequiredYour DHL Express account number
site_idstringrequiredYour DHL Express account Site ID
passwordstringrequiredYour DHL Express account password
regCountryenumerated stringrequiredISO 3166 two-character country code for the country where your DHL Express account is registered.
DE,FR,US,NZ,BE,BG,CZ,DK,EE,IE,GR,ES,HR,IT,CY,LV,LT,LU,HU,MT,NL,AT,PT,PL,RO,SI,SK,FI,SE

Shipping Requirements

  • Both weight and dimensions are required to successfully create a label.
  • Company name is required for both Ship From and Ship To addresses. If not provided, the name property value will be reused in the Company field.

Connect Account

You can connect a DHL Express account using the POST method to the /v1/connections/carriers/ endpoint, or via the ShipStation API Dashboard.

For instructions on connecting DHL Express via the ShipStation API dashboard, go to our DHL Express help article.

Connect via Endpoint

carrier_name: dhl_express

POST /v1/connections/carriers/:carrier_name

Sample request:

1
2
3
4
5
6
7
8
9
10
11
12
POST /v1/connections/carriers/dhl_express HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json
{
"nickname": "My DHL Express Account"
"account_number": "123456789",
"site_id": "your_site_id_here.",
"password": "your_password_here",
"regCountry": "US"
}

A successful connection will return a response with the carrier_id, which you'll use for any requests for this account going forward.

Rates

DHL Express supports rate shopping with ShipStation API, except for accounts based in New Zealand (however, we are working with DHL to provide this feature for NZ accounts).

Service Details

Available DHL Express services are provided below. Please note that carriers may update their available services at any time. To ensure you are always using valid services, you can use the list carrier services endpoint at any time.

Domestic Services

ServiceAPI CodeOrigin Countries
Domestic Expressdhl_domestic_expressBE, BG, CZ, DK, DE, EE, IE, GR, ES, FR, HR, IT, CY, LV, LT, LU, HU, MT, NL, AT, PT, PL, RO, SI, SK, FI, SE

International Services

All services except Express Envelope have a max weight of 150 lb (70 kg) and max length of 118" (300 cm) for individual international shipments. The total maximum weight for a multi-piece shipment is 2,200 lb (1,000 kg). Express Envelope has a max weight of 10 oz. Packages over those maximum values will not be accepted by DHL Express.

ServiceAPI CodeOrigin Countries
Economy Selecteconomy_selectDE, FR
Express Worldwideexpress_worldwideUS, NZ, BE, BG, CZ, DK, DE, EE, IE, GR, ES, FR, HR, IT, CY, LV, LT, LU, HU, MT, NL, AT, PT, PL, RO, SI, SK, FI, SE
Express Worldwide Documentsexpress_worldwide_documentsNZ
Express Envelopeexpress_envelopeUS
Express Worldwide EUdhl_express_worldwide_euBE, BG, CZ, DK, DE, EE, IE, GR, ES, FR, HR, IT, CY, LV, LT, LU, HU, MT, NL, AT, PT, PL, RO, SI, SK, FI, SE

NOTE: DHL Shipping Unavailable to US Territories​

Services for DHL (Express and Ecommerce) and DHL Express by ShipStation no longer support shipments to US territories.


Optimize Customs Data for International Shipments to Prevent Delays

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.

Key Takeaways for Merchants

  • 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.

Write Accurate Line Item Descriptions

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. This is a ​List of Common Stop Words.
  • 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."

Utilize Harmonized System (HS) Codes

Providing a correct HS code (or Commodity Code) is the most effective way to help customs officials categorize your goods.

Provide Part and Reference Numbers

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.

Prohibited Stop Words & Description Comparison

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.

Poor Description (Vague)Better Description (Detailed)Why it Matters
VINTAGE FOOTWEARWomen's shoes: leather upper, rubber soleDefines gender, material, and sole type.
JEANSMen’s jeans: 80% cotton, 20% polyesterSpecifies material composition for textiles.
SAMPLE / VARIETYStainless steel kitchen whisk (K792)Stop Words like "Sample" or "Variety" trigger automatic flags.
HAIR PRODUCTOrganic argan oil hair serum (100ml)Identifies the specific substance and volume.
The Mesa - MediumCanvas messenger bag with brass bucklesMoves past marketing names to actual physical traits.

Merchant Checklist: International Shipping Compliance

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)

Description Logic: The "Physical" Rule

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.

Technical Note: Mapping Compliance Data

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:

  1. 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.
  1. 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 description field 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 description field before the API call is finalized. This is a ​List of Common Stop Words.
  1. HS Code Automation Automating the harmonized_tariff_code field 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.

NOTE: Action Required: :nz: New Zealand Border Levy Changes

Effective ​April 1, 2026​​, a new ​NZD $2.21 (+ GST) levy​ applies to low-value air freight consignments entering New Zealand. This fee is ​separate from​​ the 15% GST already being collected, and it applies per package, not per item.

To see how this change impacts your shipping rates and carrier invoices, see the Shipping to New Zealand: Low Value Goods (LVG) Levy section of International Shipments​​.

Return Services

Return services are not supported for this carrier

Packages

The following carrier package types are available for DHL Express services:

NameAPI CodePackage Attributes
PackageboxInternational

You can also use the generic package type or custom package types.

NOTE:

While many carriers may allow you to create a label without including package dimensions, we recommend always adding package dimension values to your shipment (with the notable exception of flat rate boxes). This will ensure more accurate rate estimates, especially for carriers that rely on dimensional weight (also called DIM weight or volumetric weight).

Adding Shipment Insurance

DHL Express supports adding carrier insurance to your shipments. Review the Parcel Insurance page for details on adding shipment insurance with ShipStation API.

Visit the DHL Express Optional Services page to find the specific coverage amounts available for each country.

Label Support

  • Label sizes: 4" x 6", 4" x 8"
  • Label formats: PDF

Label Reference Fields

DHL Express supports adding custom label messages.

Label messages will be printed on the Ref field on the label and the Reference field on the commercial invoice. If using multiple label message properties in your request, the messages will be combined into a single message with a 35-character maximum. Any additional characters will be trimmed from the field.

Multi-Package Labels

DHL Express supports creating multi-package shipments with all available services. DHL has 999-label maximum for multi-package shipments.

Label Branding

DHL Express does not support label branding.

Voiding Labels

ShipStation API supports voiding DHL labels, but the void request is not sent to DHL. However, DHL Express does not charge an account holder unless the waybill is physically picked up and scanned into the network by a courier. If DHL does not pick up the waybill within 10 business days of its creation, it's automatically recycled.

Paperless Labels

DHL Express does not support paperless labels.

Customs Declarations

Customs declarations are submitted electronically, but the commercial invoice is available to download and print from the label response.

Delivery Confirmation

Confirmation TypeAPI CodeDescription
Electronic signaturesignatureSignature is required for the shipment to be delivered. This signature may be a neighbor, building manager, or the recipient can authorize the release of the package (without being present).

See our Delivery Confirmation page for more details about using the confirmation property.

Advanced Options

DHL Express supports certain advanced options, which you can add to the shipment object when creating a shipment or label.

OptionTypeDefault ValueDescription
bill_to_partyenumerated stringnullDetermines which party is paying for shipping costs. This field must be used in conjunction with the bill_to_country_code, bill_to_postal_code, and bill_to_account fields. Available values: recipient, third_party
delivered_duty_paidbooleanfalseIndicates the shipment is DDP (that is, the shipper is paying the duties/taxes for the shipment rather than the recipient).
non_machinablebooleanfalseIndicates that the package cannot be processed through sorting machines.
saturday_deliverybooleanfalseIndicates that the carrier should charge for delivery on Saturday for services that do not otherwise include Saturday delivery.

To ensure you always have the most up-to-date information about a carrier's advanced options, use the list carrier options call.

Manifests

DHL Express does not require manifesting your shipments. For accounts based in the US, manifests are submitted electronically at the time of label creation.

Scheduling Pickups

DHL Express supports scheduling pickups with ShipStation API.

See our Schedule a Carrier Pickup page for more details about scheduling pickups using ShipStation API.

Service Points (PUDO)

DHL Express does not support shipping to service points.

Tracking

ShipStation API's integration with DHL Express supports receiving tracking updates. Review our ​Track a Package guides​​ for details on tracking with the ShipStation API.

Disconnecting Your DHL Express Account

See the Disconnect section in our Delete a Carrier page for the process of deleting or disconnecting a carrier from ShipStation API.

NOTE:

If you disconnect a carrier account and reconnect it, the account will have a new carrier_id in ShipStation API.