You can do dangerous cargo classification perfectly (correct UN number, correct packing group, correct packaging) and still have the parcel refused. The regulations say what may lawfully move. The carrier tariff says what that carrier will actually take, and the two are not the same document.
This piece compares how the major US parcel carriers approach hazmat, where they diverge most sharply, and why the divergence is structural rather than accidental.
Dangerous cargo classification stops at the regulation's edge
Start from the right mental model. 49 CFR, the IATA DGR and the IMDG Code set out what is permitted. A carrier's tariff sets out what that carrier has chosen to handle. A tariff can be stricter than the regulation and routinely is. It cannot be more permissive.
So a complete classification has two halves:
- Regulatory — is this material permitted to move, in this quantity, by this mode?
- Commercial — will this carrier take it, on this service, under my account?
Teams that only do the first half find out about the second at the depot.
How the major carriers differ
| Carrier | Ground | Air | Contract required | Where its rules live |
|---|---|---|---|---|
| UPS | Broad acceptance across classes | Accepted with approval and training | Yes, for fully regulated | UPS dangerous goods service guide |
| FedEx | Broad acceptance across classes | Accepted with approval and training | Yes, for fully regulated | FedEx dangerous goods documentation |
| USPS | Limited — many materials not mailable | Highly restricted; much is surface only | No contract, but strict mailability rules | USPS Publication 52 |
| Amazon (FBA inbound) | Per-ASIN review, category dependent | Restricted | Dangerous goods review per ASIN | Seller Central dangerous goods guidance |
The authoritative sources are worth bookmarking directly: USPS Publication 52 is the mailability standard, and PHMSA's hazmat programme pages cover the regulatory baseline all of them sit above.
Where divergence is sharpest: lithium batteries
Lithium cells expose carrier differences better than any other category, because the regulatory position already varies by packing configuration and the carriers then layer their own conditions on top.
Recall the regulatory baseline from our guide to PI965, PI966 and PI967: standalone batteries under UN3480 are cargo aircraft only, while batteries packed with or contained in equipment under UN3481 can move on passenger aircraft subject to conditions.
Now add carrier layers. State-of-charge verification. Package quantity caps below the regulatory maximum. Service-level exclusions where an express air product will not take what the ground product will. Account-level approvals that gate the whole category.
The consequence: the same power bank has a different answer at each carrier, and a different answer again per service within one carrier. Any process that stores "lithium battery: OK to ship" as a single flag is going to be wrong somewhere.
And dry ice
A second clear divergence. UPS and FedEx both handle dry ice routinely on express services with marking and quantity conditions. USPS restricts it substantially and does not take it by air, which removes most postal routes for cold-chain shipping.
Same UN number (UN1845) and effectively opposite commercial answers. Our guide to dry ice classification and UN1845 covers the marking that has to be right before any of them will take it.
The rate-shopping trap
Here is where this becomes expensive rather than merely annoying. A brand runs a rate-shopping rule in its shipping platform: cheapest service wins, subject to delivery window.
That logic is sound for ordinary parcels and quietly wrong for hazmat. The rule has no concept of acceptance, so it routes an aerosol to whichever carrier priced lowest that morning. Most days that carrier accepts it. Some days it is a service that does not, and the parcel fails at induction — sometimes without a clear rejection reason getting back to the seller, so the same parcel is re-labelled and sent again.
The fix is to make hazmat status an input to the routing decision rather than a property discovered afterwards. Classify first, filter the eligible services, then rate-shop within them.
Rate-shopping across services that have not been filtered for acceptance is how a compliant shipment becomes a non-compliant one without anyone changing the classification.
Classify7 ruleset team, on why carrier eligibility is returned alongside the determination rather than looked up separately
What a carrier expects before it accepts anything
Beyond the entry-level question of whether a UN number is acceptable, the major carriers gate fully regulated dangerous cargo classification behind three prerequisites. Sellers discovering these mid-launch lose weeks.
| Prerequisite | What it involves | Typical lead time |
|---|---|---|
| Dangerous goods agreement | An account-level contract with the carrier covering the classes you intend to ship | Weeks, not days |
| Shipper training | Function-specific hazmat training, with records retained and periodic recurrent training | Course-dependent |
| UN performance packaging | Certified outers matching the packing group, with the correct marking | Procurement lead time |
Training is a regulatory requirement rather than a carrier preference — 49 CFR part 172 subpart H requires hazmat employees to be trained and the records kept. PHMSA publishes the training requirements directly, and they apply to anyone who classifies, packs, marks, labels or prepares shipping papers.
This is the practical reason so many brands work to stay inside limited quantity relief. It is not that the classification is easier — it is that the operational overhead on the other side of the threshold is substantial.
Tariffs move quietly
Regulatory editions arrive on a schedule with commentary and training courses. Carrier tariffs are revised on the carrier's own cycle, published as an updated service guide, and that is the whole announcement.
Which means a carrier acceptance answer recorded six months ago is an assumption, not a fact. Treat it as a field to re-check rather than a value to store indefinitely — particularly around the turn of the year, when carriers often align their guides with the new IATA edition.
The asymmetry is worth naming. A regulatory change is announced, trained on and dated, so dangerous cargo classification against the regulations has a natural review trigger. A tariff change has none. Nobody sends you a notice that a service you have used for two years stopped accepting Class 8 last month, and the first you hear of it is a consignment sitting at a depot.
The defensive posture is to re-check acceptance at classification time rather than trusting a stored flag, and to re-check it again whenever you add a service or a lane.
- Assuming regulatory permission implies carrier acceptance.
- Rate-shopping across services without filtering for hazmat eligibility first.
- Storing one acceptance flag per product rather than per carrier, per service and per mode.
- Reading a carrier's ground rules and booking an air service.
- Assuming an Amazon FBA approval says anything about your own carrier shipments — see the FBA hazmat review guide.
Getting dangerous cargo classification and acceptance together
Because these two questions always travel together, Classify7 returns them together. A dangerous cargo classification from POST /api/classify carries the regulatory fields (UN number, class, packing group, proper shipping name) and a carrier_eligibility_flags block covering UPS, FedEx, USPS and Amazon across ground, air and ocean, each citing the tariff position behind it.
That way the routing rule can filter on acceptance before it rate-shops, rather than discovering the constraint at the depot. The current positions are also browsable at the carrier rules reference, and for the regulatory floor beneath all of it, see the 49 CFR Hazardous Materials Table guide.