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.
| 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 |
- 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.
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.
carrier_name: dhl_express
POST /v1/connections/carriers/:carrier_name
Sample request:
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.
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).
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.
| 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 |
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: Action Required: 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 levy is charged per consignment, not per item.
See the Shipping to New Zealand: Low Value Goods (LVG) Levy section in International Shipments for full details.
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.
Return services are not supported for this carrier
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:
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).
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 sizes: 4" x 6", 4" x 8"
- Label formats: PDF
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.
DHL Express supports creating multi-package shipments with all available services. DHL has 999-label maximum for multi-package shipments.
DHL Express does not support label branding.
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.
DHL Express does not support paperless labels.
Customs declarations are submitted electronically, but the commercial invoice is available to download and print from the label response.
| 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.
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.
DHL Express does not require manifesting your shipments. For accounts based in the US, manifests are submitted electronically at the time of label creation.
DHL Express supports scheduling pickups with ShipStation API.
See our Schedule a Carrier Pickup page for more details about scheduling pickups using ShipStation API.
DHL Express does not support shipping to service points.
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.
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.