# DHL Express Canada [DHL Express Canada](http://shipping.dhl.ca/international/banner) allows you to ship packages from Canada to destinations all over the world. This guide provides developers with the details needed to build DHL Express Canada shipping capabilities into your ShipStation API workflows. ShipStation API also has integrations for [DHL Express](/apis/shipengine/docs/carriers/dhl-express-guide), [DHL Express Australia](/apis/shipengine/docs/carriers/dhl-express-australia), and [DHL Express UK](/apis/shipengine/docs/carriers/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](/apis/shipengine/docs/carriers/dhlexpress-from-shipengine). ## 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 | ### 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 Canada account using the POST method to the `/v1/connections/carriers/` endpoint. You cannot currently connect a DHL Express Canada account via the ShipStation API dashboard. ### Connect via Endpoint `carrier_name`: `dhl_express_canada` **POST /v1/connections/carriers/:carrier_name** Sample request: ```http POST /v1/connections/carriers/dhl_express_canada HTTP/1.1 Host: api.shipengine.com API-Key: __YOUR_API_KEY_HERE__ Content-Type: application/json { "nickname": "My DHL Express Canada Account" "account_number": "123456789", "site_id": "your_site_id_here.", "password": "your_password_here" } ``` 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 Canada supports [rate shopping](/apis/shipengine/docs/rates/rates) with ShipStation API. ## Service Details Available DHL Express Canada 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](/apis/shipengine/docs/reference/list-carrier-services) endpoint at any time. ### International Services All services except document services 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). Document services have a max weight of 10 oz. | Service | API Code | | --- | --- | | Economy Select | `dhl_canada_economy_select` | | Express 9:00 | `dhl_canada_express_worldwide_900` | | Express 9:00 Documents | `dhl_canada_express_worldwide_900_documents` | | Express 10:30 | `dhl_canada_express_worldwide_1030` | | Express 10:30 Documents | `dhl_canada_express_worldwide_1030_documents` | | Express 12:00 | `dhl_canada_express_worldwide_1200` | | Express 12:00 Documents | `dhl_canada_express_worldwide_1200_documents` | | Express Worldwide | `dhl_canada_express_worldwide` | | Express Worldwide Documents | `dhl_canada_express_worldwide_documents` | ### Return Services [Return services](/apis/shipengine/docs/shipping/returns) are not supported for this carrier ### Packages DHL Express Canada does not have [carrier-specific package types](/apis/shipengine/docs/shipping/carrier-packaging). You can use the generic `package` type or [custom package types](/apis/shipengine/docs/shipping/custom-package-types). ### Adding Shipment Insurance DHL Express Canada supports adding carrier insurance to your shipments. Review the [Parcel Insurance page](/apis/shipengine/docs/shipping/insurance) for details on adding shipment insurance with ShipStation API. ## Label Support * Label sizes: 4" x 6", 4" x 8" * Label formats: PDF ### Label Reference Fields DHL Express supports adding [custom label messages](/apis/shipengine/docs/labels/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 messsages 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](/apis/shipengine/docs/shipping/multi-package) with all available services. DHL has a 999-label maximum for multi-package shipments. ### Label Branding DHL Express does not support [label branding](/apis/shipengine/docs/labels/branding). ### Voiding Labels ShipStation API supports [voiding DHL labels](/apis/shipengine/docs/labels/voiding), 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](/apis/shipengine/docs/labels/paperless). ### 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](/apis/shipengine/docs/shipping/delivery-confirmation) for more details about using the `confirmation` property. ## Advanced Options DHL Express Canada supports certain [advanced options](/apis/shipengine/docs/carriers/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` | | `delivery_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. | To ensure you always have the most up-to-date information about a carrier's advanced options, use the [list carrier options call](/apis/shipengine/docs/reference/list-carrier-options). ## Manifests DHL Express Canada does not require [manifesting](/apis/shipengine/docs/shipping/manifests) your shipments. ## Scheduling Pickups DHL Express supports scheduling pickups with ShipStation API. See our [Schedule a Carrier Pickup page](/apis/shipengine/docs/shipping/pickups) for more details about scheduling pickups using ShipStation API. ## Service Points (PUDO) DHL Express does not support shipping to [service points](/apis/shipengine/docs/pick-up-drop-off/pudo-intro). ## Tracking ShipStation API's integration with DHL Express supports receiving tracking updates. Review our ​[Track a Package guides​](/apis/shipengine/docs/tracking/tracking)​ for details on tracking with the ShipStation API. ## Disconnecting Your DHL Express Account See the Disconnect section in our [Delete a Carrier page](/apis/shipengine/docs/reference/carriers/delete-carrier) 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.