GoatLabels GoatLabels
One border. Two customs streams.

Shipping to Canada: services, duties, and the final mile


Declare it clean, then pick who drives the last mile.

A US-to-Canada parcel clears customs on its declared value and description, then hands to a domestic last-mile network that varies by service. Landed cost depends on whether tax and duty are collected upfront or at the buyer's door — and the biggest delays come from vague descriptions, not distance.

Four carriers into Canada, two ways to clear customs

USPS hands to Canada Post through the postal stream; UPS, FedEx, and DHL clear their own trucks through brokerage. Same border, different bill, different doorstep.

UPSFedExDHLUSPS all quoted
Final mile named Who actually knocks.
Both streams priced Postal and courier, side by side.
Declaration attached The data the border reads.

Customs details typed once, saved as a template

Description, declared value, country of origin, and your HS code stored per product — the second parcel to Canada reuses the first one's paperwork.

VisaMastercardAmerican ExpressApple PayGoogle PayBitcoinEthereumTether (USDT)
Saved templates Same SKU, same declaration.
Prepaid wallet Card, Apple Pay, ACH, crypto.
All-in quote One number before you buy.

Service options into Canada and who delivers the final mile

Every US-to-Canada service is really two journeys stapled together: the carrier that takes the parcel to the border, and the network that delivers it after clearance. The split matters more than the brand on the label. A USPS international service travels the postal stream — it crosses as mail, clears through the postal customs process, and is handed to Canada Post, whose carriers reach every address in the country. A courier service never changes hands: the same UPS, FedEx, or DHL network that collected the parcel clears it through its own brokerage and delivers it with its own drivers.

Neither is simply better. The postal handoff is the only path that treats a rural route, a post office box, and a downtown condo as the same job, and it is usually the budget option. The courier path is faster, tracked in more detail, and clears customs more predictably — but it treats remote postal codes as extended-area territory and prices them accordingly. The point of quoting both on the same parcel is that the destination decides the winner, not the habit.

How duties and taxes are assessed on your parcel

Canadian customs works from exactly what you declared: the description, the declared value, and the country of origin. Value is converted to Canadian dollars and taxed — a federal sales tax plus, for most provinces, a harmonized provincial component that depends on where your buyer lives, not where the parcel enters. Duty is a separate question answered by classification and origin, and here US sellers get a structural break: goods that genuinely originate in the United States broadly qualify for preferential treatment under the US-Canada-Mexico trade agreement, which zeroes out duty on much of what small sellers ship. Tax survives that test; duty often does not.

The two customs streams also apply different low-value relief, which is why the same declared value can clear free by courier and be assessed by post. The current thresholds sit in the dated lane sheet below, because they are set by trade agreement and regulation and can move. What does not move is the mechanism: below the relevant line the parcel clears without assessment, above it the buyer side of the transaction owes tax and possibly duty, and the collection method depends entirely on which network is holding the parcel. The form itself, HS codes, and the choice between prepaying charges or leaving them to the buyer are covered on customs forms for small parcels — one guide for every lane.

What Canadian buyers get billed at the door, and how to prevent the surprise

The complaint that damages a cross-border store is rarely the shipping price. It is the second bill: a buyer who paid for the item and the postage, then opens the door to a demand for tax plus a fee for the privilege of being charged it. On the postal side that fee is a flat handling charge Canada Post applies when it presents CBSA charges. On courier ground services it is a brokerage fee that scales with the entry work. Express services usually fold routine brokerage into the rate, which is part of what you are paying for in the higher price — the assessment still happens, but the fee for processing it does not land on your buyer separately.

Prevention is a pricing decision, not a shipping trick. You can choose a service and declared-value combination that clears under the assessment lines. You can prepay duties and taxes so the parcel arrives settled — the DDP-versus-DDU decision, which belongs to the customs guide. Or you can simply say at checkout that import charges may apply, which converts an ambush into a known term of sale. What you should not do is nothing, because the buyer who gets surprised once orders domestic after that.

The declaration details that cause holds at the border

Distance does not delay parcels into Canada; paperwork does. The border processes millions of small parcels on declared data alone, and anything a machine cannot classify gets routed to a human, which is what a customs hold actually is. The classic trigger is a description that names a category instead of a thing. A parcel declared as clothing, gift, or accessories cannot be classified, so it waits. A parcel declared as a cotton t-shirt, a ceramic coffee mug, or a paperback novel clears on the first pass. Value plausibility is the second trigger — a declared value far below what the description suggests reads as understatement and invites reassessment, which takes longer than honest declaration ever would.

This is a data-entry problem, so it has a data-entry fix. GoatLabels puts customs items on the shipment — description, declared value, country of origin, and the HS code you supply — and saves them as templates per product, so the declaration that cleared cleanly last month is the one that ships this month. Billy will draft the plain-word description from a pasted order for you; the HS code and the values stay yours, because classification is a legal statement only the seller can make. One typed-once template beats a fresh improvisation on every label, and it is the single cheapest thing you can do for transit time on this lane.

Undeliverable and refused parcels coming back across the border

A refused or undeliverable parcel does not wait in Canada for instructions. It re-crosses the border as a return, which means it clears customs a second time in the other direction, and on courier services the return transportation is generally billed to you as the shipper. Refusal at the door over unexpected fees is the common case; an address defect the carrier cannot resolve is the other. What each carrier does with an undeliverable parcel, and who pays for the ride home, is the subject of package returned to sender. A parcel that stops scanning entirely somewhere past the border is a different problem with a different clock — lost and damaged claims covers the filing windows. And because every one of these outcomes starts from the label price, it is worth remembering that the four-way quote that makes a cheap label cheap applies to this lane too: the carriers disagree more on international parcels than on domestic ones, not less.

US → Canada lane sheet — verified against CBSA and Canada Post published guidance on 2026-08-15

Service family Final mile Customs handoff Who collects, and how
Postal stream (USPS international services) Canada Post, which reaches every Canadian address including rural routes and PO boxes USPS carries to the border; CBSA assesses in the postal stream; Canada Post presents charges Tax and any duty collected from the buyer at or before delivery, plus a flat Canada Post handling fee when charges apply
Courier ground (UPS Standard, FedEx International Ground) The courier's own Canadian network; remote postal codes may route as extended-area Cleared commercially by the courier's brokerage as the truck crosses Duties, taxes, and a brokerage fee billed to the buyer on ground services unless the shipper prepays
Courier express (UPS Worldwide, FedEx International Priority, DHL Express) The courier's own network, fastest into major metros Cleared in flight or on arrival by the courier's own brokerage Routine brokerage is typically built into express service; taxes and duty still assessed and billed

Dated figures, all in one place. As of the verification date above: courier shipments from the US enter under the CUSMA low-value rules — no tax below CAD $40 declared value and no duty below CAD $150 — while the postal stream applies the older CAD $20 line for both. Canada Post charges a flat handling fee (under CAD $10) when it presents charges; courier ground brokerage varies by entry value and is published in each courier's Canadian fee schedule. Typical transit: postal services roughly one to two weeks, courier ground about four to seven business days, express one to three. These figures are CBSA, Canada Post, and courier policy — re-checked every 6 months by the named review owner recorded with this page; check the source before building prices on them.

One Canadian parcel, declared and gone

Type the declaration once. Ship it every time after.

A US-to-Canada parcel is a customs declaration with a box attached, and the border makes its decisions from the declaration rather than the box. This is the loop that keeps the two agreeing: the order arrives however it arrives, Billy drafts a plain-word description and validates the address, the declaration is saved against the SKU, and both customs streams are priced before anything leaves the wallet.

1
The Canadian order, however it arrived
Synced, pasted, or typed
instagram buyer

can you send the mug to Moose Jaw, SK? postal code S6H 0A1

Shopify
Synced order — customs template applied
TikTok Shop
Synced order — same saved declaration
Customs items on the shipment
Description
A ceramic coffee mug, in plain words
Declared value
The price actually paid — yours to state
Country of origin
Where it was made, not where it ships
HS code
Supplied by you, then saved per product
Paste the order or drop a screenshot

The postal code does more work here than a ZIP does at home: whether the address is a rural route, a post office box, or a downtown condo decides which service families can reach it at all, and the quote answers that before you choose.

2 Billy AI

Drafting a description the border can classify.

Billy AI
  • Turns a pasted order into a specific, plain-word item description — a ceramic mug, never merchandise
  • Validates the Canadian address before any money leaves the balance
  • Leaves the declared value and the HS code to you, because a classification is the seller's legal statement
  • Included on every plan, so a store with an occasional export side pays nothing extra to declare it
Described. Validated. Both streams priced.
3
One label, one declaration
Postal stream or courier, per parcel
Paid from the prepaid wallet
Card, Apple Pay, Google Pay, ACH, or crypto
all-in
USPS
Label and customs form purchased
Declaration saved against the SKU
all-in

The declaration that cleared cleanly is the one that ships next month, because it was saved rather than improvised. On this lane that single habit does more for a parcel's journey than any service upgrade does.

Thirteen storefronts, one cross-border queue

Canadian orders arrive from every channel you sell on.

Shopify, Etsy, WooCommerce, TikTok Shop, Amazon, eBay, Squarespace, Wix, Walmart, Square, BigCommerce, Magento, and Temu sync into the same To Ship queue, with tracking pushed back when you print. A Canadian order from any of them sits beside a Canadian order you pasted out of a DM — and both pick up the same saved customs template for the same SKU.

Via AItiles: paste a DM or a screenshot — a parcel crossing the border needs a declaration, not a connector.

Shopify logo Shopify
Etsy logo Etsy
WooCommerce logo WooCommerce
TikTok Shop logo TikTok Shop
Instagram logo Instagram AI Facebook logo Facebook AI
Amazon logo Amazon
eBay logo eBay
Show 15 more Show less
Squarespace logo Squarespace
Wix logo Wix
Walmart logo Walmart
Shopify Plus logo Shopify Plus Soon
Square logo Square
BigCommerce logo BigCommerce
Magento logo Magento
Zapier logo Zapier Soon
NetSuite logo NetSuite Soon
Ecwid logo Ecwid Soon
Temu logo Temu
Shein logo Shein Soon
ChannelAdvisor logo ChannelAdvisor Soon
SkuVault logo SkuVault Soon
Zoho Inventory logo Zoho Inventory Soon
What a cross-border label needs

The border reads data.
Ship it good data.

A Canadian parcel is a declaration with a box attached. Everything below exists to make the declaration accurate, reusable, and priced honestly before the wallet is touched.

One prepaid wallet,
every lane

Card, Apple Pay, Google Pay, ACH, and crypto top up one balance that pays for Canadian labels and domestic ones alike. No monthly plan sits underneath it, so a slow month on the export side costs nothing — the wallet only moves when a label is bought.

Wallet balance
$1,247.36 USD
AI

Billy drafts the
customs description

Paste the order and Billy writes the plain-word item description the border can actually classify — a cotton t-shirt, not merchandise. The declared value and the HS code stay yours to supply, because classification is the seller's legal statement, not an autocomplete.

Billy LIVE
Where's the package to Maya?
It's in transit via UPS. Expected Friday, Aug 7.
UPS
1Z8923A6B05G4123456
In transit
Austin, TX → Dallas, TX
Ask Billy anything...

Duties visible
inside the quote

Each carrier comes back as one all-in number with the duties and taxes portion broken out inside it, so you can see what the door bill would be before choosing who pays it. The amount you approve is the amount that leaves the balance.

Shipment summary
UPS Ground $12.49
Insurance $0.75
Fuel surcharge $0.32
Total $13.56

Postal stream and
courier, same screen

USPS rides to Canada Post's every-address network; UPS, FedEx, and DHL clear and deliver on their own. Quoting all four on the same parcel is how a rural Manitoba address and a Toronto condo end up on different services without anyone having to memorise why.

Compare rates
UPS UPS $12.48
FedEx FedEx $13.22
DHL DHL $14.10
USPS USPS $11.79
Duties & taxes paid

Cross-border over
the REST API

Customs items ride the same shipment objects the dashboard uses, on unlimited calls with signed webhooks, so a store can generate declared, validated Canadian labels in code. Saved customs templates apply there too — map a SKU to its declaration once.

POST /v1/shipments
{
"to": { "name": "Maya" },
"from": { "name": "Alex" },
"service": "ups_ground",
"label_format": "pdf"
}
Webhook delivered
GoatLabels mobile queue showing a Canadian parcel with its customs items attached
Billy drafting a customs description for a Canadian order on mobile

Declared label ready

Moose Jaw, SK · customs template applied

Cross-border from the packing bench

A customs declaration that fits in one hand.

Nothing about a Canadian parcel actually requires a desk. The declaration is stored against the product, the address validator runs on the phone, and both customs streams come back priced on the same screen — so the border paperwork stops being the reason international orders wait until Friday.

Paste the order and Billy drafts the plain-word description the border can classify.
The Canadian address is validated before you pay, so a rural route is caught as a route and not as a return.
Postal stream and courier services priced side by side, duties and taxes visible inside each number.
The SKU's saved customs template attaches itself, so the second parcel reuses the first one's paperwork.
Print the label and its customs form in one tap, to the share sheet or a thermal printer over Wi-Fi.
Billy is included, border parcels and all

Ask where a parcel is on the far side of the border.

Cross-border tracking has more moving parts than a domestic one: a handoff, a clearance, and quite often a final-mile carrier that is not the one you bought from. Ask out loud and Billy pulls the shipment up and reads back where it actually is, so the answer you give a Canadian buyer is the current one rather than the last scan you remember. Included on every plan. This is the real product, not a render.

goatlabels.io/dashboard/shipments — Billy
Billy reading back a Canadian shipment's tracking history over the purchased labels list

Listening

"Has the Moose Jaw parcel cleared yet?"

Out for delivery

Moose Jaw, SK · with the final-mile carrier

Speaks plain English · knows which network is actually holding a cross-border parcel · included on every plan, never a pricier tier.

One parcel, both streams

The same box to Toronto, priced three ways.

Postal stream and courier services quoted side by side on the identical parcel — each column one all-in number with the duties and taxes portion shown inside it, so the door-bill question is answered before you buy, not after your buyer complains.

US → CA (Toronto) 1.8 lbs 10×8×4 in
USPS

USPS

Priority Mail Intl

6–10 days

$28.10

$3.90 of duties & taxes shown inside the total

all-in · door bill visible upfront

Cheapest all-in
UPS

UPS

Standard to Canada

4–7 days

$25.60

$5.10 of duties & taxes shown inside the total

all-in · door bill visible upfront

DHL

DHL

Express Worldwide

1–3 days

$39.40

$6.30 of duties & taxes shown inside the total

all-in · door bill visible upfront

No brokerage ambush at the door Void → credit straight back to your wallet Buyer-side charges itemised
Public API v1

Customs items ride the same shipment object.

A cross-border label is a declaration, and a declaration is structured data — which is what makes this the lane where an API earns its keep. Attach customs items to the shipment, let the saved per-SKU template fill them in, and buy: REST, JSON, one Bearer header, unlimited calls on every plan including Free.

Customs items on the shipment object — description, declared value, origin, and your HS code
Per-SKU customs templates applied in code, so the declaration that cleared keeps clearing
Signed webhooks for tracking events, including the handoff scans on the far side of the border
Real idempotency keys and an OpenAPI 3.1 spec, with unlimited calls on Free
Read the API docs Get a free API key $0 on every plan
curl https://api.goatlabels.io/api/v1/shipments
POST /api/v1/shipments
Authorization: Bearer sk_live_…
Idempotency-Key: ord_8421

{
  "to": { "name": "Joyce", "city": "Berlin", "country": "DE" },
  "parcel": { "weight": 2.6, "weight_unit": "lb" },
  "service": "fedex_intl_priority"
}
Pricing for a store with an export side

Cross-border labels. No cross-border plan.

Most stores meet Canada as a trickle rather than a market: a handful of orders a month alongside the domestic volume that pays the bills. Nothing here charges extra for the border — customs items, saved declarations, and both customs streams are on the free plan, and the wallet only moves when a label is bought.

Pro

Most popular
$40 / month
Unlimited shipments — for the season Canada stops being a trickle
Cheaper label pricing as your volume grows
Billy AI on Telegram — ask whether a parcel has cleared without opening the dashboard
API access still free and unlimited

Volume pricing

illustrative
less volume more volume

more volume → lower per-label rates

Free

$0 / forever

A few Canadian orders a month, on the plan that costs nothing to keep open.

50 shipments a month, no monthly minimum to print
Customs items and per-SKU saved declarations included
USPS, UPS, FedEx, and DHL rate-shopped on every parcel, domestic and cross-border
Billy AI in the web app — drafts the plain-word customs description, unlimited use
REST API with unlimited calls; fund by card, Apple Pay, Google Pay, ACH, or crypto

Billy is not an upsell

The assistant that turns a pasted order into a description the border can classify — a ceramic mug, not merchandise — runs on Free, unlimited, in the web app. Pro adds Billy on Telegram.

Web — every plan Telegram — Pro

API free on every plan

GET /api/v1/shipments

200 OK · plan: free

Unlimited calls on Free — still unlimited on Pro.

We'll beat your current rates

Bring your invoice — on Pro we work with you to beat the rates you're getting from

ShippoPirateShipShipStation
No contracts No surcharge for crossing a border Start in seconds
USPS UPS FedEx DHL

Label prices are quoted live from USPS, UPS, FedEx, and DHL as one all-in number with the duties-and-taxes portion shown inside it. What the border assesses, and what a final-mile carrier charges to present it, are theirs to set rather than ours — the lane sheet above names the source for each. Full pricing details

Which Canadian doorstep you are shipping to

One border, four very different doorsteps.

What wins into Canada is decided by the postal code and the declaration, not by the brand on the label. These are the four cases where choosing out of habit costs the most.

Rural routes and postal boxes

Where only the postal stream reaches

Final mile decides

A courier network treats a remote postal code as extended-area territory; the postal stream hands to a universal-service carrier that treats every Canadian address as the same job. Quoting both on the same parcel is how that gets decided per address instead of per store.

2 customs streams priced final mile named duties shown inside the total
goatlabels.io/dashboard/shipments
GoatLabels shipments queue showing a Canadian parcel with both customs streams quoted

Sellers sending the same SKU north repeatedly

One declaration, shipped over and over

The second parcel of a product should never be a fresh improvisation. Save the description, value, origin, and HS code against the SKU and the paperwork that cleared without a query last month is the paperwork on today's label.

Customs template reused

Description, origin, and HS code carried from the last clean clearance

Sellers quoting Canada from a DM

The order with no connector behind it

how much to send this up to Moose Jaw?
Both streams quoted · duties shown inside

Stores that would rather nobody was ambushed

The second bill, at the door

0

surprises when the buyer was told at checkout what the door may ask for

Shipping to Canada, answered

Do I need a customs form to ship to Canada?
Yes — every merchandise parcel crossing the border needs a customs declaration with an item description, declared value, quantity, and country of origin, whichever carrier you pick. The border makes its decisions from that data, not from what is inside the box. How to fill the form out well, including HS codes and the DDP versus DDU choice, is covered end to end on our customs forms guide at /customs-forms-for-small-parcels.
Who pays duty on a US-to-Canada order?
By default, your buyer. Unless you ship a service that collects duties and taxes from you upfront, the parcel travels with the charges unassessed and whoever operates the final mile collects them from the recipient before or at delivery, usually with a handling or brokerage fee added. Many US-origin goods qualify for preferential duty treatment under the US-Canada-Mexico trade agreement, but the tax portion is assessed regardless of origin — so a duty-free parcel can still arrive with a bill attached.
Which declaration details cause holds at the Canadian border?
Vague descriptions are the biggest single cause: words like gift, merchandise, samples, or accessories tell the border officer nothing, so the parcel is set aside for a human to open or query. Value mismatches are next — a declared value that looks implausible for the described item invites reassessment. The fix costs nothing: write what the item actually is, in plain words, with an honest value, and include the recipient's phone number so a courier can resolve questions without parking the parcel.
Which services reach rural Canadian addresses?
Anything that hands to Canada Post for the final mile reaches effectively every Canadian address, including rural routes and post office boxes, because Canada Post is the universal-service operator. Courier networks deliver most of the country themselves but treat remote postal codes as extended-area territory, which can add days and destination fees — the general mechanics of those fees live on our surcharges guide. If the postal code looks remote, quoting both a postal-stream service and a courier on the same parcel answers the question for that address specifically.
What happens if my Canadian buyer refuses the fees?
The parcel does not get delivered and does not stay in Canada. A refused parcel is returned to you as the sender, it crosses customs again on the way back, and courier services generally charge return transportation for the trip. You are then holding the item, out the original label cost and possibly a return charge, with the sale usually refunded. The cheapest version of this problem is the one you prevent: tell the buyer before checkout that fees may be collected at the door, or price the order so there is nothing to collect.

The rest of the international-lane series: the UK, the EU, and Australia — and the form every one of these lanes starts from, on customs forms for small parcels.

Real sellers, real words

What sellers say once the border stops being a gamble.

A video took off and I had 80 TikTok Shop orders by morning. I printed every label from my phone on the bus to the post office.
E

Early customer · TikTok

TikTok Shop seller

TikTok Shop
I run my Etsy shop from the kitchen. The AI reads the order, picks the carrier, the label prints. That's the whole workflow now.
E

Early customer · Etsy

Etsy maker

Etsy
The API is what every shipping API pretends to be. Idempotency that actually works.
S

Sasha R.

Staff engineer, marketplace

API user
No monthly minimum. No brokerage surprises.

Quote the parcel both ways.
Let the postal code decide.

Enter one real Canadian order, see the postal stream and the couriers priced all-in on the same screen, and ship it with the declaration saved for next time.

Sign up in seconds. No card required. Customs templates on every plan.