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
| Property | Type | Required? | Description |
|---|---|---|---|
nickname | string | required | This is a nickname for you to identify the carrier account in ShipStation API. |
account_number | string | required | Your DHL Express account number |
site_id | string | required | Your DHL Express account Site ID |
password | string | required | Your DHL Express account password |
regCountry | enumerated string | required | ISO 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
nameproperty 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:
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
| Service | API Code | Origin Countries |
|---|---|---|
| Domestic Express | dhl_domestic_express | 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 |
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.
| Service | API Code | Origin Countries |
|---|---|---|
| Economy Select | economy_select | DE, FR |
| Express Worldwide | express_worldwide | US, 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 Documents | express_worldwide_documents | NZ |
| Express Envelope | express_envelope | US |
| Express Worldwide EU | dhl_express_worldwide_eu | 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 |
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.
- 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.
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 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. |
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:
- 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
descriptionavailable in the product database to thedescriptionfield 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. This is a ​List of Common Stop Words.
- 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.
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:
| Name | API Code | Package Attributes |
|---|---|---|
| Package | box | International |
You can also use the generic package type or custom package types.
NOTE:
Shipment Dimensions and Weight Recommended!
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 Type | API Code | Description |
|---|---|---|
| Electronic signature | signature | Signature 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.
| Option | Type | Default Value | Description |
|---|---|---|---|
bill_to_party | enumerated string | null | Determines 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_paid | boolean | false | Indicates the shipment is DDP (that is, the shipper is paying the duties/taxes for the shipment rather than the recipient). |
non_machinable | boolean | false | Indicates that the package cannot be processed through sorting machines. |
saturday_delivery | boolean | false | Indicates 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_idin ShipStation API.