Track DHL eCommerce SmartMail Parcel Plus & Packet shipments through USPS DDU delivery.

DHL eCommerce Americas picks up and sorts parcels across 19 US regional distribution centers before inducting them into local USPS Destination Delivery Units (DDUs) for final-mile delivery. Query ?carrier=dhlecommerce for middle-mile sort scans and ?carrier=usps for final mailbox delivery.

Barcode transition: DHL eCommerce to USPS

Domestic DHL eCommerce parcels keep the same 92… / 420… barcode from pickup to mailbox. Pass ?carrier=dhlecommerce to inspect middle-mile sort scans before USPS induction.

Origin / middle-mile carrier
DHL eCommerce (dhlecommerce)
DHL eCommerce GM… or shared USPS 92/93… IMpb
^GM\d{16,18}$|^9[23]\d{20,24}$
Origin example
GM29511573030094531
Final-mile carrier
USPS (usps)
USPS 22–26 digit IMpb (926129… / 927489… / 93…)
^9[23]\d{20,24}$
Final-mile example
92612903029511573030094531
Middle-mile resolution
Delivery by USPS Int'l / Domestic tracking #: 92612903029511573030094531

How the DHL eCommerce → USPS handoff works

Follow the parcel across both networks without waiting on asynchronous webhooks or losing visibility at the handoff boundary.

1. Merchant fulfillment & DHL eCommerce pickup
DHL eCommerce collects the parcel from the warehouse under a GM… customer confirmation number or a shared 92…/93… USPS IMpb barcode.
2. Regional DHL distribution center sortation
The parcel moves through DHL eCommerce hubs (Hebron KY, Stow OH, Whittier CA, Avenel NJ, Forest Park GA) while USPS shows Shipping Label Created, USPS Awaiting Item.
3. USPS DDU induction & final delivery
DHL drops the gaylord pallet at the recipient's local post office (DDU), where USPS scans Arrival at Unit and Out for Delivery.
Middle-mile query
GET /v1/track/{number}?carrier=dhlecommerce
Final-mile query
GET /v1/track/{number}?carrier=usps
17TRACK limitation
17TRACK blocks DHL eCommerce US (7047) and USPS (21051) on its synchronous getRealTimeTrackInfo endpoint

Chain DHL eCommerce → USPS in code or MCP

Resolve both legs synchronously in TypeScript, curl, or your AI support agent via Streamable HTTP MCP.

REST (Synchronous GET)

# 1. Query DHL eCommerce middle-mile scans on the 92… barcode:
curl "https://api.lastscanned.com/v1/track/GM29511573030094531?carrier=dhlecommerce" \
  -H "Authorization: Bearer lsk_live_YOUR_API_KEY"

# 2. Query USPS final-mile scans on the same barcode:
curl "https://api.lastscanned.com/v1/track/92612903029511573030094531" \
  -H "Authorization: Bearer lsk_live_YOUR_API_KEY"

TypeScript (Automatic Handoff Chaining)

const headers = { Authorization: `Bearer ${process.env.LASTSCANNED_API_KEY}` };
const res = await fetch(`https://api.lastscanned.com/v1/track/${encodeURIComponent(number)}`, { headers });
let pkg = await res.json();

// If USPS is still waiting on the consolidator parcel, query DHL eCommerce middle-mile hubs:
if (pkg.carrier === "usps" && pkg.status === "label_created" && /^(420\d{5})?9[2345]/.test(number)) {
  const mid = await fetch(`https://api.lastscanned.com/v1/track/${encodeURIComponent(number)}?carrier=dhlecommerce`, { headers });
  if (mid.ok) pkg = await mid.json();
}

Remote MCP (Claude Code / Cursor / ChatGPT)

claude mcp add --transport http lastscanned https://mcp.lastscanned.com \
  --header "Authorization: Bearer lsk_live_YOUR_API_KEY"

DHL eCommerce to USPS Handoff Tracking (926129… / 927489… / GM…) FAQ

Why does my DHL eCommerce package say USPS Currently Awaiting Package?
Because DHL eCommerce transports the parcel through its own regional sort centers first and only hands it to USPS at your local post office 1–2 days before delivery.
How do I get the USPS tracking number from a GM… DHL eCommerce number?
Query GET /v1/track/{GM_NUMBER}?carrier=dhlecommerce on lastscanned. The response includes the linked 92…/93… USPS IMpb tracking number once assigned.

Other carrier handoff guides

Explore cross-border last-mile barcode extraction and domestic USPS consolidator overrides across all 125 carriers.

All 125 supported carriers