Shipping
Connect DHL Express
International rates and labels on your own DHL Express contract.
Overview
DHL Express + TackQuote
A negotiated DHL Express contract is worth having, and paying an aggregator a per-label fee on top of it undoes part of the reason you negotiated. TackQuote speaks the MyDHL API directly using your own credentials, so rates and labels are priced against your contract and billed to your DHL account with nothing taking a cut in between. MyDHL authenticates with HTTP Basic rather than OAuth — unusual among direct carriers, and named as HTTP Basic in the connect form rather than glossed as "an API key", because what you paste is literally what travels on every request. Your nine-digit account number is sent as the shipper account on every rate and shipment call, which is what makes the returned price yours. Where DHL Express is connected directly it is served directly even if EasyPost is also connected: a direct connection wins for that carrier and leaves the rest of your carriers on the aggregator.
Store your MyDHL API credentials and account number, verify, then rate and ship on your own DHL contract.
Before you start
What you'll need
- A DHL Express account with a nine-digit account number your contract is attached to
- MyDHL API credentials from developer.dhl.com
- A named contact, phone number and company on both ends of a shipment — DHL requires all three on a label
Setup
How to connect DHL Express
Store your MyDHL credentials
The MyDHL API key and secret plus your nine-digit DHL Express account number belong under Settings → Shipping Carriers.Choose test or production
Both hosts are DHL's own and the choice is yours per connection. The test host issues non-billable labels; nothing lets a tenant point the connection at an arbitrary URL.Rate, label, track
Request rates, buy a label against a returned service code, and pull tracking for a waybill on demand. A shipment needs a named contact and phone on both ends, which DHL requires and TackQuote validates before spending anything.
Capabilities
What you get
Your DHL Contract Pricing
Every rate and shipment request carries your DHL Express account number as the shipper account, so the price that comes back is the one your contract entitles you to.
No Per-Label Aggregator Fee
Labels are bought from DHL and billed to your DHL account. The per-label fee an aggregator would add on top simply does not exist on this path.
HTTP Basic, Named Honestly
MyDHL uses HTTP Basic, not OAuth. The connect form says so and labels each field for the half it becomes, because a mislabelled auth scheme is a support ticket waiting to happen.
Test Host Before Production
DHL publishes a genuine test host that issues non-billable labels, so an integration can be exercised end to end before real money is involved.
FAQ
DHL Express questions
Why connect DHL Express directly instead of through EasyPost?
To stop paying twice. An aggregator adds its per-label fee on top of the DHL charge, so a seller with a DHL contract pays both. Connecting DHL directly bills only DHL, and it only changes how DHL is served — other carriers stay on EasyPost if that is how you reach them.
Does this handle customs paperwork for international shipments?
No. Duty, customs documentation and commercial invoices are deliberately not implemented on this connection. It rates, buys labels and tracks; anything customs-related belongs in MyDHL itself.
Can I reprint a DHL label later?
No. DHL returns the label inline in the purchase response with no durable URL, so the document is returned to you once and never stored. Save it when you buy it.
Are shipping costs added to quote totals automatically?
Not yet. Rating, labels and tracking work, but the quote-pricing path does not read carrier rates, so quote totals never move on their own.