Build customs documentation for a multi-leg international shipment using EasyPost CustomsInfo objects

domain: docs.easypost.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. For each unique commodity in the shipment, create a CustomsItem object with description, quantity, weight, value, origin_country, and hs_tariff_number — use a separate CustomsItem per distinct HS code (UPS allows up to 100 items per customs declaration).
  2. Create a CustomsInfo object that references all CustomsItem IDs, and set contents_type (e.g., merchandise), restriction_type, incoterm, and eel_pfc (Electronic Export License or exemption code for US exports).
  3. Attach the CustomsInfo object to each Shipment leg that crosses an international border by including the customs_info field in the Shipment create payload.
  4. Check the shipment's forms array after creation: EasyPost sets submitted_electronically: true if the carrier accepts electronic customs transmission, or includes a printable commercial invoice PDF that must be physically attached to the parcel.
  5. For multi-leg routing where an intermediate leg is domestic, create a new Shipment object for each leg but re-use the same CustomsInfo object ID — CustomsInfo is immutable once created so correct all data before creation.
  6. Validate that the declared value on CustomsInfo matches the commercial invoice to avoid customs holds caused by value discrepancies.

Known gotchas

Related routes

Declare customs information on an international shipment label via the EasyPost CustomsInfo API
easypost.com · 5 steps · unrated
Implement international customs documentation (commercial invoice, HS codes, incoterms) for a cross-border shipment API
logistics-general · 6 steps · unrated
Build a compliant CN22/CN23 customs declaration for a small parcel international postal shipment
easypost.com · 5 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans