How to track PostNL (`...NL` / `3S...`) parcels from the Netherlands handed off to Canada Post

PostNL International (and its global cross-border arm Spring GDS) routes Dutch and consolidated European/Asian parcels (`LA...NL`, `CJ...NL`, `EA...NL`, `3S...`) through Amsterdam Schiphol (`AMS`) to Canada Post gateways in Montreal (`YUL`), Toronto (`YYZ`), and Vancouver (`YVR`).

Try a live tracking number:

Barcode transition: PostNL International to Canada Post

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

Origin / middle-mile carrier
PostNL International (postnl)
PostNL S10 / 3S Barcode
LA / CJ / EA + 9 digits + NL or 3S...
Origin example
LA849201948NL
Final-mile carrier
Canada Post (canadapost)
UPU S10 Barcode on Canada Post
LA / CJ / EA + 9 digits + NL
Final-mile example
LA849201948NL
Middle-mile resolution
LA849201948NL

How the PostNL → Canada Post handoff works

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

1. PostNL / Spring GDS Export at Schiphol (`NLAMSA`)
PostNL sorts the parcel in the Netherlands (and converts any `3S...` shipper label into an international UPU S10 `...NL` barcode) before flying it out of Amsterdam Schiphol (`AMS`).
2. Arrival in Canada & CBSA Customs Review
The parcel lands at Montreal (`YUL`) or Toronto (`YYZ`), where Canada Post scans `Item has arrived in Canada and will be presented for review` for CBSA customs.
3. Canada Post Final Delivery
Canada Post delivers the parcel across Canada to your home, Community Mailbox, or Post Office pickup location.
Origin Postal Operator
`postnl` (PostNL / Spring GDS)
Canadian Final Mile
`canadapost` (Canada Post Corporation)
Barcode Conversion
PostNL `3S...` labels map to an international S10 (`C...NL` / `L...NL` / `E...NL`) barcode for Canada Post.

Chain PostNL → Canada Post 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 PostNL International middle-mile scans on the 92… barcode:
curl "https://api.lastscanned.com/v1/track/LA849201948NL?carrier=postnl" \
  -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/LA849201948NL" \
  -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 PostNL International 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=postnl`, { 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"

PostNL Netherlands & International Spring GDS to Canada Post Handoff FAQ

My sender gave me a PostNL 3S... tracking number—why doesn't Canada Post recognize it?
`3S...` is PostNL's internal barcode. When shipping outside the Benelux to Canada, PostNL assigns a 13-character international barcode (`CD...NL`, `LA...NL`, or `EA...NL`) that Canada Post scans in Montreal or Toronto. `lastscanned` resolves this automatically.
Why does my package from China or the UK have a PostNL (...NL) tracking number to Canada?
PostNL operates global cross-border sorting centers (Spring GDS) via Schiphol (`AMS`), so many international stores route parcels through the Netherlands on their way to Canada Post.
How long does PostNL take to deliver to Canada?
Tracked PostNL Priority / Packet (`LA...NL` / `CJ...NL`) typically takes 6 to 12 business days to reach Canadian addresses.

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