How to track YDH Express (`YDH...`) Benelux parcels handed off to PostNL & DHL eCommerce

YDH Express (`ydhex`, Shanghai YDH International Logistics) flies consolidated Chinese e-commerce shipments into Amsterdam Schiphol (AMS) or Liège (LGG), clears EU IOSS customs, and injects Dutch and European parcels into PostNL (`3S...` / `...NL`).

Try a live tracking number:

Barcode transition: YDH Express to PostNL (Netherlands)

When YDH Express clears customs and hands off to PostNL (Netherlands), lastscanned surfaces the secondary tracking number in the top-level message field.

Origin / middle-mile carrier
YDH Express (ydhex)
YDH Express Waybill (`YDH...`)
^(YDH[A-Z0-9]{9,15}|3S[A-Z0-9]{11,15})$
Origin example
YDHNL849201948
Final-mile carrier
PostNL (Netherlands) (postnl)
PostNL `3S...` Barcode
^3S[A-Z0-9]{11,15}$
Final-mile example
3SYDHE849201948
Extracted in .message
Final carrier: PostNL (3SYDHE849201948)

How the YDH Express → PostNL handoff works

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

1. YDH Origin Consolidation (Shanghai / Shenzhen)
YDH Express collects the parcel (`YDH...`) and assigns a linked Dutch PostNL `3S...` barcode.
2. Air Freight to AMS / LGG & Customs Clearance
Pallets land at Amsterdam Schiphol or Liège, clear EU IOSS customs, and enter PostNL's Dutch parcel sorting network.
3. PostNL Final Delivery
PostNL scans `Zending is ontvangen door PostNL` and delivers the parcel the next working day.
`3S...` Barcode Extraction
YDH Express links the `YDH...` origin waybill to the 15-character PostNL `3S...` barcode in its international tracking payload.
Unified JSON Timeline
`GET /v1/track/{number}` merges YDH Express air-linehaul milestones with PostNL Dutch delivery events.

Chain YDH Express → PostNL 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 YDH Express origin waybill (extracts final-mile barcode in .message):
curl "https://api.lastscanned.com/v1/track/YDHNL849201948" \
  -H "Authorization: Bearer lsk_live_YOUR_API_KEY"

# 2. Query the extracted PostNL (Netherlands) barcode:
curl "https://api.lastscanned.com/v1/track/3SYDHE849201948" \
  -H "Authorization: Bearer lsk_live_YOUR_API_KEY"

TypeScript (Automatic Handoff Chaining)

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

// Extract secondary barcode from top-level message ("Final carrier: PostNL (3SYDHE849201948)")
const handoff = originPkg.message?.match(/^Handed to (.+?) as ([A-Z0-9-]+)$/i);
if (handoff) {
  const [, , lastMileNumber] = handoff;
  const destRes = await fetch(`https://api.lastscanned.com/v1/track/${encodeURIComponent(lastMileNumber)}`, { headers });
  const destPkg = await destRes.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"

YDH Express to PostNL Netherlands Handoff Tracking FAQ

How do I find my PostNL `3S...` barcode from a YDH Express tracking number?
Pass your `YDH...` tracking number to `GET /v1/track/{number}` to extract the linked `3S...` PostNL barcode and Dutch delivery scans.
How long does YDH Express take to deliver to the Netherlands?
Typical delivery time from China to the Netherlands via YDH Express and PostNL is 6 to 11 calendar days.
Why does PostNL show 'Zending is nog niet door PostNL ontvangen'?
YDH pre-registers the `3S...` label before departure from China; PostNL updates the status once the physical pallet clears customs at Schiphol/Liège.

Other carrier handoff guides

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

All 273 supported carriers

International posts and couriers

Cross-border